Friday, April 30, 2004

Memrogram itu sulit.

Saya mulai kenal BASIC di Casio FX-702P di tingkat 1. Saat itu PC (XT, RAM 640kB; ada yang pernah pakai?) masih jarang. Tahun berikutnya belajar FORTRAN di mesin Apple II. Mengedit source code dengan WordStar (harus mode non-text(?), agar isi file murni ASCII). Lalu kenal Turbo Pascal, suatu program ajaib yang merangkap fungsi editor, compiler, dan library dalam satu file executable berukuran kurang dari 64kB. Masih di Apple II juga.

Tahun berikutnya mulai merambah ke machine code (ini bahkan lebih rendah dari assembler, kita harus menulis bahasa assembly di kertas, menterjemahkannya ke opcode, lalu memasukkan byte-demi-byte opcode ke MicroProfessor, mesin Z-80 yang cute. Lalu Assembler. Mulai pakai SideKick, program ajaib lain yang memperkenalkan manisnya multitask ke dunia DOS. Sampai tahap ini, learning curve cukup landai rasanya.

Tiba-tiba harus bertemu dengan Mark Williams C. Saat itu saya memperhatikan dengan takjub rekan saya Bambang Sugiantoro asyik berkutat dengan teks editor, lalu harus meng-compile dengan perintah command line. Di masa saya belajar FORTRAN, bahkan sampai Assembler, saya tidak alergi dengan command line. Tapi entah kenapa saya gentar melihat C. (Mungkin juga kronologi dalam ingatan saya tidak runut, mungkin saya melihat C pertama kali malah sebelum Assembler).

Tapi ketika Borland menaburkan kharismanya lagi dengan Turbo C, saya langsung jatuh cinta dengan C. Tidak ada lagi rasa terintimidasi. Mungkin saya telah berubah menjadi manja.

Sebenarnya, flashback, kenapa saya tertarik memrogram? Karena saya tidak cukup mampu untuk membeli komponen elektronik. Hobby saya mulai SD adalah elektronik. Tapi reusability komponen elektronik cukup rendah. Bahkan kesalahan disain maupun implementasi bisa menyebabkan kerusakan komponen. (Bayangkan kalau kita memrogram dengan tingkat kesulitan seperti itu :)).

Karir saya di pemrograman lumayan lama. Mulai Casio (tanpa grafik), sampai Turbo Pascal dan Turbo C di atas DOS dan grafik di VGA. Tapi ketika Windows datang, saya tidak mampu menyeberangi energy barrier, bahkan untuk sekedar menulis program "Hello, world" GUI di Windows 3.1. Cukup lama saya bertahan di DOS, dan sempat tertarik dengan Novell Netware juga.

Ketika, lagi-lagi, Borland datang dengan Delphi, saya baru mau mencicipi pemrograman di Windows. (Saya tidak ingat apakah Visual Basic hadir lebih awal dari Delphi, tapi walaupun saya pernah memakai Visual Basic, tidak terasa "greng"-nya, sehingga saya tidak mendalami).

Lalu ada internet, Linux, Solaris, Oracle, DB/2, Informix, dan masih banyak lagi. Semua cukup menantang. Saya jadi lupa bagaimana memrogram. Lebih-lebih setelah bertemu Perl dengan cacingnya yang mengerikan. Jadi, memogram memang sulit. Saya bagian mengkritik program orang sajalah :))

----

Sudah lama saya ingin menyumbangkan patch ke kernel Linux. Ketika saya menemukan sebuah bug di kernel 2.4 (dan 2.6 juga), saya sangat gembira. Lebih-lebih ketika saya menemukan cara mengatasinya. Tapi rupanya maintainer subsistem itu juga tidak setuju dengan bugfix yang saya ajukan.

andika@xxxxxxxxxx.com (Andika Triwidada) writes:

>> Well, before fix, we will need to find the cause of this problem.
> On the other hand, this problem did exist. Is it justified enough to patch kernel then?
If this is undocumented specification of windows, it would be added as workaround for it.
If the crash or something is cause of the problem, it should not be added.
> I don't see any potential future problem from application of my patch.
The principle of "Keep It Simple, Stupid".
The fsck is separated from kernel, and it does on userland. Since the
repair is fsck's job, there is no reason that kernel does it.
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxx.jp>


Jadi, memrogram, apalagi di level kernel, itu memang rumit bukan?

1 comment:

Anonymous said...

saya suka pemrograman assembler, dan visual basic. saya pernah membuat operating system primitif sederhana pake asm, dan pernah buat antivirus sendiri. saya merasa punya kemampuan untuk 'dijual', tetapi sulit sekali mencari kerja dengan kemampuan saya ini. bisa tolong bantu? kira-kira bagaimana menjadikan kemampuan pemrograman saya, khususnya assembler, agar bisa menjadi 'duit'? saya juga menguasai pemrograman level bahasa mesin (arasnya lebih rendah dari bahasa assembler), tetapi untuk aplikasi mikrokomputer. tolong dong dibantu, kirim balasannya ke mr_orche@hotmail.com dan terimakasih banyak!!!