<< Back The truth about my life

Fri, 10 Mar 2006

Heh, sanırım bazı arkadaşlar sıklıkla "Selam!" yerine kullandığım "Boo!" sözcüğünü Pixar'ın Monsters Inc. (We scare because we care) ile ilişkilendiriyor olmalılar. Tabii tamamen ilgisiz değil ama, aslında bu girizgâh gerçek Boo'ya tatlı bir gönderme. Yakından tanıdığım ve sevdiğim insanlara her "Boo!" dediğimde aklıma yapacak bir işim daha olduğu geliyor.

İşte gerçek Boo: A wrist friendly programming language for the CLI. Murat Eren'in Ruby/Python karşılaştırmasını görünce yazmadan edemedim.

Açıkçası bendeniz kulunuz girintileme ile kod bloğu oluşturan dillerden hazzetmem. Ömrümün geri kalanında Java'dan mümkün olduğunca uzak durmamı sağlayacak miktarda Java kodu yazdıktan sonra artık eminim: PHP5, C ve C# ile yola devam edeceğim. Nasıl oldu bilmiyorum, belki zaten bir ölçüde tanıdığım bir framework ile mecburen düzgün girintilemeli dilleri bir araya getirdiğinden, Boo'ya kanım ısındı. Yakın zamanda biraz oynayacağım sanırım.

Python, Ruby ve Boo üçlüsünün hiçbirini birbiriyle kıyaslayacak kadar bilmiyorum ama Boo Primer ve Boo Manifesto oldukça çekici görünüyor:

Önce biraz Boo Primer:

Part 01 - Starting Out

Boo is an amazing language that combines the syntactic sugar of Python, the features of Ruby, and the speed and safety of C#. Like C#, Boo is a statically-typed language, which means that types are important. This adds a degree of safety that Python and other dynamically-typed languages do not currently provide. It fakes being a dynamically-typed language by inference. This makes it seem much like Python's simple and programmer-friendly syntax.

C#:

int i = 0;
MyClass m = new MyClass();

Boo:

i = 0
m = MyClass()

... ve sonra biraz Manifesto:

boo was born almost a year ago out of my frustation with existing programming language systems and my growing love for the Common Language Infrastructure and the architectural beauty of the entire .net framework.

I was frustrated mainly because I could not use the language I wanted to use (python at the time) to build the kind of systems I needed to within the technological framework my company has settled on. I had two options: I could either use a different framework (such as the python standard libraries and runtime environment) or a different programming language (C# was the logical choice for such a long time C++ programmer like myself). I tried both and was completely satisfied by none.

When I was programming in full python mode I missed some of the things I'd normally get from a more statically typed environment such as compile time error checking (good when you're refactoring a large user interface code base such as my company's) but what I missed the most was the well thought out .net architecture and its great support for unicode, globalization and web style applications.

After a not-so-successful python attempt that had put us way behind the schedule I started C# coding like hell. I programmed a lot and by that I mean no xmas or carnival or 6 hour sleep nights. Some pretty good tools came to light during those intense times, Bamboo.Prevalence being just one of them. To make a long story short we finally delivered what we had to using C# and the .net framework. That's the holywood ending. In the alternate ending I was stressed and couldn't avoid those mixed feelings about C# in the light of my previous python experience:

Nice syntax but do I really have to type in all those casts? What a clean callback and event system design but can't YOU just create that delegate for me, Mr. Compiler? Great, true multidimensional arrays! I need a list with the tasks marked done, couldn't it be a little easier? Thanks for the warning but couldn't I just type in some code and see the results, please? Write a class? What do you mean "Write a class!"?

Imagine those sentences spinning really fast inside your caffeinated ADD brain at 3 AM and you'll start getting a picture.

Now I missed the wrist-friendly python syntax and the ability to easily test my ideas with running code. And I wanted more! I wanted a language I could extend with my own constructs. I wanted a compiler system that could be taught new things, taught how to automagically generate common code for me. I should be able to do that, right? We all should. We are programmers! We're entitled to that, it's all there in the big old book of programmers, right at the end if I recall it correctly... Well, more than anything else, I needed some old-fashioned quality sleep and time to put my head straight. Being such a hard case of not-invented-here syndrome it all became clear to me: I had to build a new programming language system for the CLI, one that allowed programmers to take advantage of the wonderful .net framework features without getting in their way. One that could be used, extended and modified by developers according to their specific needs.

I had to build boo.

Bir de unutmadan, Boo denen oyuncak Mono üzerinde de çalışıyor, tıpkı Microsoft .NET Framework üzerinde çalıştığı gibi.

İyi eğlenceler,

About me

I'm Enver ALTIN, a software developer at Cellenity.

Calendar

March 2006
SuMoTuWeThFrSa
    1 2 3 4
5 6 7 8 91011
12131415161718
19202122232425
262728293031 

Categories

/ (355)
  articles/ (1)
  books/ (7)
  coffee/ (1)
  debian/ (1)
  events/ (7)
  factsoflife/ (13)
  general/ (8)
  gnome/ (16)
  humor/ (21)
  lkd/ (8)
  management/ (1)
  mobile/ (1)
  mono/ (4)
  music/ (8)
  personal/ (35)
  politics/ (27)
  postgresql/ (4)
  programming/ (12)
  projects/ (2)
  quotes/ (1)
  technology/ (7)
  tips/ (6)
  travel/ (1)
  work/ (13)

Archives

Links

Popular

Talk slides

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 2.5 License.

Miscellaneous

This site is built on the wonders of Pyblosxom, supposed to be W3C XHTML 1.0 and CSS 1.0 compliant, always handcoded using Vim. The server that hosts this site is powered by Debian GNU/Linux.
.O.
..O
OOO