Hacker News new | past | comments | ask | show | jobs | submit login

Well, I think the real issue is that C++, C, and Objective C are all bad.

If you want OOP, slapping it on top of assembly language isn't a great idea. Use CL or Smalltalk instead; or any of the dynamic languages. Those are much closer to being good than anything in the C family.




Objective-C is a dynamic language.

Check out MacRuby, which is Ruby implemented on top of the Objective-C runtime: http://www.macruby.org/

The key difference between this and other "bridges" is Ruby classes are implemented as Objective-C classes. This couldn't have been done if Objective-C weren't as dynamic as it is. Objective-C is basically Ruby in C's clothing (which leads to a very different "feel", but in terms of "dynamicism" they're approximately the same).

And "slapping it on top of assembly language"? I'm not sure what that has to do with anything. C compilers are usually written in C. V8 (Chrome's JavaScript engine) generates machine code. What exactly is your argument?


C is "portable assembly". If you add some OO keywords on top of that, then you have "OO slapped on top of assembly".

The implementation language of the compiler is completely irrelevant.


If it is so dynamic, why does it have header files and interfaces?


You consider those three languages bad compared to Lisp/Smalltalk, without asking why C and C++ were vastly more popular.

I see your point about OOP, by the way: I don't think I really got C until I learned assembly language, and then it all fell into place.

Looking only at language aesthetics, Lisp/Smalltalk are excellent at OOP. We now have the benefit of computers that are insanely fast by the standards of the history of computing.

Go back a decade, and you want to get the best performance for a system by taking that awareness of the underlying assembly code. If you're dealing with pointers and structs then you can write sections of your program that you know will convert to a handful of assembly instructions.

You do have a point: trying to do OOP in a fancy version of assembly language is not going to be as seamless as a language with different core concepts. There are some ugly weld marks in C++ and ObjC, although I have come to appreciate the ObjC design approach after some time with it.

I just think it is meaningless to talk about good or bad languages without reference to the goals of the programmer.


You make zero sense.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: