Thứ Bảy, 8 tháng 8, 2009

Vì sao mã nguồn là tự do? Các lập trình viên Linux/FOSS lên tiếng! (Phần 2)

Why Code For Free? Linux/FOSS Devs Speak!

Vì sao, Làm thế nào, lòng tin của dân chuyên nghiệp máy tính, các kỹ năng

Why, How, Geekcreds, Skills

Carla Schroder

Wednesday, July 29, 2009 11:36:11 AM

Theo: http://www.linuxplanet.com/linuxplanet/reports/6807/1/

Bài được đưa lên Internet ngày: 29/07/2009

Lời người dịch: Không chỉ các lập trình viên, mà cả nhiều quản trị hệ thống Linux cũng muốn mã nguồn của họ là tự do với nhiều lý do rất thực dụng của họ.

Tuần trước tôi đã nói về một số ưu điểm của phần mềm tự do nguồn mở (FOSS) đối với chúng ta, những người sử dụng đầu cuối. Hôm nay tôi sẽ làm thứ gì đó mà chưa ai từng làm trong lịch sử của các học giả, và việc đi hỏi các lập trình viên phần mềm thực thụ vì sao họ thích FOSS. Tôi đã nhận được nhiều câu trả lời tuyệt vời tới nỗi tôi đã phải chia chúng thành 2 phần, và phần 2 sẽ được đưa vào ngày mai.

Vì sao và thế nào?

Akkana Peck là một tác giả nổi tiếng của LinuxPlanet, người viết lập trình cho những người mới bắt đầu và viết Howto (làm thế nào) của GIMP (một phần mềm nguồn mở tương tự như Photoshop), là tấc giả của cuốn “Bắt đầu với GIMP: Từ Mới bắt đầu tới Chuyên nghiệp”, và là lập trình viên nguồn mở lâu năm. Cô nói:

> Làm thế nào mà một lập trình viên có thể sống được bằng việc viết phần mềm tự do?

Bằng việc làm cho một công ty mà trả tiền cho mọi người để phát triển phần mềm tự do. Có nhiều công ty như vậy cho các lập trình viên viết cho nhân, đặc biệt những người mà chuyên về mạng và lưu trữ, nhưng cũng có những công ty trả tiền cho mọi người để phát triển các sản phẩm khác của nguồn mở – Mozilla, Canonical, Red Hat, Novell, Oracle và một số các công ty nhỏ. Và có nhiều người ở trường đại học viết các phần mềm nguồn mở như là một phần (có thể là tất cả) công việc của họ. Tôi thích thấy các công việc của chính phủ cũng làm như vậy, nhưng dường như là không có nhiều.

> Vì sao mọi người phải lập trình vì tự do? Đặc biệt khi mà họ là những tay chuyên nghiệp dày dạn, và không tìm kiếm kinh nghiệm?

  • Gãi đúng chỗ ngứa: tạo ra những chương trình mà là thứ gì đó mà bạn cần, theo cách mà bạn muốn họ làm ra chúng.

      • Cơ hội để viết dạng mã nguồn mà BẠN muốn viết, chứ không phải những gì mà ông chủ của bạn muốn bạn viết hoặc một vài uỷ ban nào đó nói bạn phải viết.

      • Cơ hội để học những công nghệ mới, hoặc vì bạn thấy chúng quyến rũ hoặc như là tư liệu xây dựng tổng kết mà bạn không thể có được thông qua công việc của bạn.

      • Cơ hội để sử dụng một ngôn ngữ mà bạn thích nhất hơn là một ngôn ngữ mà họ sử dụng ở công sở.

      • Danh tiến và vinh quang. OK, điều đó là xấc xược, nhưng nó thực sự là một cơ hội để tên bạn có trên những thứ mà nó hữu dụng cho nhiều người, mà nhiều lập trình viên không có được từ công việc (nhiều công việc lập trình liên quan tới việc viết một ít – những thứ mà ít người sẽ bao giờ nhìn thấy, những website nội bộ, các ứng dụng cho doanh nghiệp, vân vân).

      • Cơ hội để được biết đến trong một cộng đồng như một lập trình viên tốt, nên bạn có thể cuối cùng được trả tiền để làm việc trong đó hoặc các dự án tương tự.

Thứ cuối cùng là đặc biệt quan trọng đối với bất kỳ ai đang cố gắng bứt phá trong các công việc lập trình: các sinh viên, những người thay đổi sự nghiệp, những người với dạng kết nối không đúng mà họ bị kẹt trong một công việc cụt đường thay vì việc lập trình thực tế.

Last week I talked about some the advantages of Free/Open Source software for us end users. Today I'm going to do something no one has ever done in the history of punditry, and that is ask actual software developers why they prefer FOSS. I received so many excellent responses that I have split this into two parts, and the second part will run tomorrow.

Why and How?

Akkana Peck is a popular LinuxPlanet author who writes programming-for-beginners and Gimp howtos, is the author of "Beginning GIMP: From Novice to Professional", and is along-time open source developer. She says:

> How can a dev make a living writing Free software?

By working for a company that pays people to develop free software. There are lots of such companies for kernel developers, especially those who specialize in network and storage, but there are also companies paying people to develop other open source products -- Mozilla, Canonical, Redhat, Novell, Oracle and a number of smaller companies. And there are a lot of university people writing open source software as part (probably not all) of their jobs. I'd like to see government jobs doing that as well, but there don't seem to be many.

> Why should anyone code for free? Especially when they're seasoned professionals, and not noobs looking for experience?

      • Scratch an itch: create programs that do something you need, the way you wish they'd do them.

      • Chance to write the sort of code YOU want to write, not what your boss wants you to write or some committee says you should write.

      • Chance to learn new technologies, either because you find them exciting or as resume-building material you can't get through your job.

      • Chance to use a language you like better than the one they use at work.

      • Fame and glory. Okay, that's flippant, but it really is a chance to get your name on something that's useful to a lot of people, which a lot of programmers don't get from work (a lot of programming jobs involve writing little one-off stuff few people will ever see, internal websites, business apps, etc.)

      • Chance to get known in a community as a good developer, so you can eventually get paid for working on that or similar projects.

That last one is especially important for anyone trying to break into programming jobs: students, career changers, people with the wrong sort of connections who got stuck in a dead-end job instead of real programming.

Kể cả các quản trị hệ thống mã nguồn

R. Daneel Olivaw viết:

Vâng, tôi không là một lập trình viên, nhưng như một người quản trị hệ thống Linux, việc lập trình là một dạng sở thích hữu ích.

Có một số thứ mà tôi thích trong phần mềm nguồn mở. Khi bạn viết một ứng dụng cho công việc của bạn, nó phải … chạy! Thường thì, chủ yếu trong các công ty nhỏ, mã nguồn được xem xét chỉ bằng chính bạn... hoặc lập trình viên mà thay thế bạn. Trong những trường hợp như vậy, việc lập trình khó mà là một lựa chọn. Không ai sẽ đánh giá bạn đúng về công việc của bạn, và nếu người quản lý của bạn không bao giờ vá hoặc sử dụng lại mã nguồn này, thì bạn dường như sẽ “thắng” trong “cuộc chơi”.

Nếu mã nguồn này được tung ra, sẽ có một cơ hội một số lập trình viên khác sẽ đọc mã nguồn của bạn. Sẽ có, theo quan điểm của tôi, thứ gì đó thú vị về nó. Có nghĩa là một số những “người chuyên nghiệp” khác, bạn bè cùng cảnh, có thể đánh giá mã nguồn của bạn, có thể còn học được từ đó. Biết rằng, có thể được khuyến khích để viết thứ gì đó sạch sẽ, ổn định và theo nghĩa nào đó, thông minh.

Cũng, việc đưa mã nguồn ra công chúng, sẽ cần bạn làm cho nó cứng cáp: bạn không bao giờ biết thiết lập gì sẽ làm chạy được đồ của bạn, và có thể sẽ tức tối khi biết rằng mã nguồn “của tôi” có khả năng đi qua được mọi nền tảng. Vì thế, mã nguồn có một cơ hội để trở nên tốt hơn và sạch sẽ hơn.

Cuối cùng những không kém phần quan trọng, có thể sẽ có những người mà sử dụng mã nguồn của bạn. Họ có thể thấy nó thiếu một chức năng hoặc lưu ý một lỗi nào đó. Họ còn có thể viết ngược lại cho bạn để làm cho mọi thứ được sửa đúng. Nhưng thời gian rỗi của bạn là đáng giá, nên mã nguồn ban đầu càng tốt, thì càng dễ dàng để nó được sửa các lỗi. Nếu mã nguồn là đủ sạch (hãy luôn chú giải mã nguồn của bạn!), một số lập trình viên khác có thể còn vá nó cho bạn. Và bạn sẽ không bỏ phí thời gian rỗi của bạn để vá các chương trình được viết tồi tệ.

Cuối cùng, phần thưởng: khi bạn đưa một vài mã nguồn lên một danh sách thư điện tử hoặc một nhóm thảo luận, một số người khác mà bạn không biết, có thể sẽ bình phẩm bạn về “công việc chuyên nghiệp và cứng cáp” này.

Sysadmins Code Too

R. Daneel Olivaw writes:

Well, I'm not a programmer, but as a Linux Sysadmin, programming is kinda useful hobby ;)

There are some things that I like in open source software. When you write an app for your job, it has to ... just work ! Often, mainly in small companies, the code is reviewed only by yourself ... or the programmer who replaces you. In such cases, coding ugly is an option. No one will evaluate you correctly about your work, and if you manage never to patch or reuse the code, you seem to have "won" the "game".

If the code is released, there is a chance some other programmer will read your code. There is, in my view, something exciting about that. It means that some other "professional", a peer, may evaluate your code, maybe even learn from it. Knowing that, I'd be encouraged to write something clean, stable and, in some extent, smart.

Also, releasing the code in the wild, will need you to harden it : you never know what setup will run your thing, and I'd be fierce to know that "my" code was able to get through any platform. Therefore, the code has a chance to be better and cleaner.

Last but not least, there may be people that use your code. They may see it lacking a function or notice a bug. They may even write you back to get things fixed. But your free time is valuable, so the better the original code, the easiyer it is to fix errors. If the code is clean enough (always comment your code!), some other programmer may even patch it for you. And you won't waste your free time patching badly written programs.

Finally, the reward: when you post some code on a list or a forum, some other people you do not know, may compliment you for the "professional and solid work".

Dịch tài liệu: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.