Archive
C++ Today – Let’s create C++ User Group Indonesia
Background
Hai rekan developer,
Mungkin banyak orang yang sudah meragukan apakah c++ masih relevan untuk dipelajari di jaman sekarang ini. Apalagi dengan kemunculan berbagai macam bahasa-bahasa yang menyediakan banyak syntatic sugar, managed code, automatic memory management anda segala kemudahan yang menggiurkan lainnya. C++ seperti padam dan tidak terdengar dengungnya dan semakin sepi kelihatannya penggemarnya di Indonesia. Banyak yang sudah langsung mempelajari Java, C# dan php sebagai bahasa pemrograman pertamanya. Hal ini tentu saja tidak salah, tetapi tanggapan bahwa c++ tidak relevan lagi di dunia industry untuk saat ini benar-benar merupakan kesalahan yang besar.
Apa yang menyebabkan banyak orang beranggapan demikian ?
Salah satunya mungkin adalah kesan yang buruk yang dialaemi oleh para programmer tersebut ketika belajar c++ pada jamannya. Sehingga tanggapan tersebut melekat dan kemudian disampaikan kepada orang-orang dan tidak ada orang yang mau membantah tanggapan tersebut. Tidak ada orang yang memberikan kabar baik mengenai c++ tersebut. Sehingga tidak ada lagi generasi yang membuat c++ sebagai first language of choicenya.
Dari hal diatas kita bisa lihat bahwa symptom nya adalah kita tidak memiliki komunitas yang kuat untuk menyebarkan keindahan c++ tersebut. What’s the matter with c++ community in Indonesia ? Kita telah melihat bahwa .NET dan Java memiliki komunitas yang saling berbagi mengenai perkembangan, mengadakan meeting, eksplorasi dsb.
Apakah memang sudah tidak ada lagi developer c++ yang ada di indonesia ? Apakah tidak ada lagi hal yang bisa dibagikan dari c++ ? Apakah sudah tidak ada lagi berita baru dan latest news dari c++ ? Saya sangat meragukan hal tersebut.
Saya menemukan beberapa artikel menarik yang mungkin dapat menggambarkan apa yang terjadi dengan komunitas c++. Hal ini tidak hanya terjadi di Indonesia tetapi juga di luar negeri. C++ developer dikategorikan sebagai Dark Matter developers. Mengapa disebut demikian ?
Karena meskipun c++ developer masih tetap exist dan saya yakin banyak jumlahnya. Tetapi mereka seolah-olah tidak terlihat. Mereka tidak pernah memunculkan dirinya di depan umum, tidak membaca atau menulis blog, tidak mengikuti atau membuat user group, no tweet, facebook etc etc. Tidak ada yang mengetahui bahwa mereka tetap membuat software dengan C++. Embedded developer tetap melakukan pekerjaannya dengan c dan c++ sementara banyak developer lain berlomba-lomba untuk mengejar the Next Big Thing dan cutting edge technology. Tetapi hey… Dark Matter Developers menghasilkan software !!
Dark Matter Developers: The Unseen 99%
Mungkin ini saatnya bahwa C++ developer berkumpul bersama, berbagi, menghapus semua tanggapan orang yang buruk mengenai c++. Let’s start, Stand Up and Speak Up. Banyak hal-hal baru yang perlu kita suarakan ke public. Banyak hal-hal lama juga yang mungkin tidak semua orang mengetahuinya perlu kita bagikan.
Modern C++ / C++ 11
Perkembangan C++ belakangan ini sangat pesat. Saya mungkin hanya mengamati di dunia windows, tetapi hal tersebut juga bakal terjadi di tempat lain yang tidak saya perhatikan. Beberapa diantaranya adalah C++11 telah membuat C++ seperti bahasa baru. Banyak hal-hal yang merupakan mimpi buruk bagi developer yang telah berubah. Lambda expression, auto, foreach etc etc.
C++ semakin dibutuhkan lagi sekarang terutama untuk performance. C++ is fast. Tidak ada yang bisa membantah hal tersebut. Ketika kita menulis program. There’s nothing faster than native code. Run directly in the metal. Memanfaatkan semua kemampuan hardware secara optimize. Terlebih lagi di dunia parallel, multicore, cloud bla bla bla. C++ semakin dibutuhkan untuk memunculkan kemampuan tersembunyi yang ada di hardware tersebut ke software kita.
Dunia smartphone, tablet, device memiliki daya yang terbatas sehingga C++ merupakan salah satu pilihan yang tepat untuk memenuhi kebutuhan tersebut. C++ dapat memberikan sesuatu yang lebih dengan daya yang minimal.
Server Farm membutuhkan bahasa yang efficient sehingga power consumption bisa di reduce. Tidak banyak orang yang tahu mengenai hal tersebut. C++ developer knows that better than others. C++ memungkinkan kita membuat code yang efficient dengan tidak mengorbankan abstraksi. object oriented right ?
Windows 8
Windows 8 dan MetroStyle Apps, ya.. sekarang statusnya masih Consumer Preview or Beta. Tetapi dari yang saya amati, C++ is still the best in that world. Kita dapat memanfaatkan existing code dan menggunakannya untuk berhubungan dengan WinRT. Karena sebenarnya WinRT pada dasarnya adalah COM. Dan COM adalah C++. WinRT is Native. Seperti yang saya sebutkan di atas tidak ada yang bisa mengalahkan kecepatan dari native code. Dengan menggunakan C++ kita dapat memanfaatkan library Win32, membungkusnya didalam WinRT component sehingga dapat diakses dari bahasa lain seperti C# dan Javascript yang tidak memiliki kemampuan seperti itu. We should help each other right ?
Pada Windows 8 juga, hanya C++ yang bisa mengakses DirectX secara langsung. Jika kita ingin membuat games high performance MetroStyle apps kita sudah hampir pasti menggunakan C++. Nasib dari XNA masih belum jelas. SharpDx yang dapat digunakan oleh C# juga merupakan wrapper terhadap DirectX dan akan memberikan performance penalty dalam hal ini. So you should go with C++ in this case.
Visual Studio 2011 Beta
Banyak penambahan yang memberikan kemudahan kepada c++ developer dalam membangun aplikasi dengan Visual Studio. Versi 2011 beta ini menambahkan banyak lagi untuk para developer c++. Let’s get started with this page
What’s New in Visual Studio 11 Beta for C++ Developers
Auto Vectorization
Compiler selalu di improve setiap release dan kita tidak menyadari bahwa code kita selalu di optimize. It’s just works. Visual Studio 2011 telah menambahkan fitur yang membuat code anda performace tanpa sepengetahuan kita. Code perulangan(loop) kita yang memiliki potensi untuk dijalankan parallel akan secara otomatis diubah sedemikian rupa sehingga dapat loop tersebut dapat dijalankan secara bersamaan. Loop menjadi lebih cepat pada CPU yang memiliki support terhadap SIMD instruction. Keuntungan ini hanya didapat oleh Native developer. Managed developer masih belum mendapatkan keuntungan yang serupa. 🙂
Auto-Vectorizer in Visual Studio 11 – Overview
GPGPU – C++ AMP
Masih di dunia parallelism, C++ AMP memberikan akelerasi code dengan memanfaatkan GPU yang biasanya digunakan untuk graphic menjalankan code kita lebih cepat. Kita dapat memindahkan high computation atau number crunching code dari CPU ke GPU. Hal ini belum dapat dilakukan oleh managed language seperti c#.
Overview of C++ Accelerated Massive Parallelism (C++ AMP)
How to use C++ AMP from C# using WinRT
How to use C++ AMP from C++ CLR app
C++ User Group Indonesia
Begitu banyak hal yang bisa kita bagikan dan menunjukkan C++ tetap menjadi hal yang sangat layak untuk diperhitungkan sebagai first class language. Why not start from now ?
Let’s gather, let’s have a meeting, let’s have a discussion. Let’s create something great for our community.
Dengan demikian kita akan melahirkan lebih banyak lagi C++ developer di Indonesia, membangkitkan gairah belajar mahasiswa di universitas untuk membuat c++ sebagai bahasa favouritenya. And maybe someday they will end up in the big company that heavily invest in C++ like Microsoft, Google and Facebook. Who knows ?
🙂
Cheers
C++ Memory Management Series
Memory management merupakan salah satu hal yang menjadi momok untuk para developer. Melalui video ini saya akan menjelaskan bagaimana cara untuk menangani masalah tersebut dengan elegan.
Enjoy it!