Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My suggestion is Objective-C. It's just so weird to anyone who's never coded in it, that it will force you out of your comfort zone into new ways of thinking. The NS framework is probably the most well designed stdlib of any language ever, and the whole thing is inspired directly from Smalltalk. Protocol Oriented Programming [0] was also a real revelation for me, and I still apply those concepts anywhere I can. It's also a great introduction to lower level concepts like pointers and memory management that is a lot more forgiving than C/C++.

[0] https://www.sicpers.info/2015/06/protocol-oriented-programmi...



My thoughts on weird are APL, Smalltalk, Forth, Haskell, Prolog, and Lisp. They're all weird in a good way though.


Obj-C will always be a dear example to me, because after people praised it so much on HN in contrast with C++, Java I expected it to be something at least a little bit special. When I actually had the chance to use it, I found a mediocre and pretty error-prone language. And then the cherry on top, Apple unceremoniously flushed it down the drain...

This taught me to take any programming language recommendations from HN with a huge quantity of salt and also mostly ignore Kay-style OO purists.


I'm sad to see that you feel that way about the language; since I had exactly the opposite experience. Objective-C is a beautiful (if syntactically verbose) language, and I prefer it to C++ as an "object-oriented C". I'm actually curious what you tried doing with the language, because

> I found a mediocre and pretty error-prone language.

makes it seem like you didn't get a chance to dive down into the runtime and how the message-passing model works. FYI,

> Apple unceremoniously flushed it down the drain...

this is not true at all. Most of the code that Apple themselves writes is Objective-C.


why would you supoose that C++ is an object-oriented C ? the primary paradigm in C++ is generic programming, not OO.


Modern C++ kind of.

Gang of four book was written with Smalltalk and C++ examples.

Back in the 90's we had Mac OS PowerPlant, CSet++ on OS/2, OWL/VCL/MFC/ATL on Windows, Motif++ on UNIX, Telligent, and a myriad of ORM, distributed computing, image libraries and what not written in OOP C++.

Then came Java, took the best practices out from OOP C++, and two decades later 90's C++ is known as Java OOP and people act as if C++ OOP never happened.


Maybe now it is, but before STL etc. were thought of, C++ was intended by its creator to bring better support for OOP to C.

See http://www.stroustrup.com/bs_faq.html#why


Objective-C is also the Stackoverflow 2019 Developer Survey's most dreaded language.


This is mostly because Swift exists and this is where app development, Objective-C's main niche, is moving towards. Note the verbiage describing "dreaded":

> Most dreaded means that a high percentage of developers who are currently using these technologies express no interest in continuing to do so.




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

Search: