Live data from Hacker News

Ask HN: What cool development languages/tools changed your career?

news.ycombinator.com

171–180 of 315 posts

Re: Ask HN: What cool development languages/tools changed your career?

#171
post #59

Earlier quoted context omitted.

But exactly. The so-called OO languages are worse at the key tenets of OO paradigm: polymorphism and message passing. I didn't even attempt to clarify that in my original post so forgive me for that.

I'm a sizable clojure fan (and a long time Python developer) but I'm not sure where you'd say Python fails at polymorphism or message passing too strongly. Interfaces/traits maybe (z.i is quite crusty) but it's just as good at polymorphism. Mutability though yes -- hope you're aware of https://pyrsistent.readthedocs.io/en/latest/ I use it in every project I write.

Yes, I've been hasty to write sloppily today.

One thing that is not perfect is the way Python treats classes; the mechanism is very much like in Java or C#. Multiple dispatch requires some handiwork, although it's not half bad in a highly dynamic (so many things are first class in Python!) language. It kinda isn't Python's fault but there you go when trying to introduce concepts to fellow developers not in the most usual python guidebooks. And a part of the problem is Django, which is nice and all, but entails some highly unpythonic design choices and people around here take Django's way as gospel.

Pyrsistent is great. But I'd rather Python 4000 or something would go the way of scala or swift where you have immutable values by default and mutable values only when you specify it.

Re: Ask HN: What cool development languages/tools changed your career?

#172
post #159

Python, coming from C/C++, Javascript (at least circa 2003) was like leveling up 10x in my programming superpower. I was able to explore concepts and domains so much faster, and those concepts have led to my career. I've talked with friends who only know something like C# or Java, and I feel bad for them - they have no language in which to rapidly play with things. And that rapid ability to play (like with the Python…

I can't agree with this more. Coming from C/C++, I was hindered by worrying about memory management and building everything from scratch. Python and its standard library just allowed me to wrap my head around algorithms.

Re: Ask HN: What cool development languages/tools changed your career?

#173
post #64
post #25

Nobody mentions RUST? I thought it,s popular here...

Rust is extremely new, with way fewer people who have tried it. So there wasn't much opportunity to change someone's career (both on the time and the people axis). Additionally, Rust is a very well-engineered language, but it has few ground-breaking attributes. The borrow checker has never appeared in a non-esoteric language before, I guess. Most of the other goodies could have blown people's minds long before in ano…

I think the borrow checker is actually pretty mind-blowing. In general, I'd say that the combination of modern language features with a real systems target (i.e. low-level, no GC) certainly has the potential to be game changing, in the sense of making it that much less scary to write things in a systems language.

Re: Ask HN: What cool development languages/tools changed your career?

#174

Earlier quoted context omitted.

Clojure has mutability and a lot of its idiomatic abstractions are object oriented in nature.

> a lot of its idiomatic abstractions are object oriented in nature This is a curious comment, and I'd like to hear some elaboration. I used C++ for years, then 2 years as a full-time Clojure dev, and I don't see any OO parallels in Clojure at all.

A couple comments.

* clojure protocols map to interfaces (abstract classes for C++ folks)

* one can define records that satisfy protocol(s). This is one way to do OO in clojure, happens to map to the underlying JVM mechanisms for JVM optimizations to kick in.

* Gamma et al., Bloch and many others tell to prefer composition over inheritance. Clojure makes this guideline easy to follow.

* overall the OO leaders also recommend making classes "value classes" (everything immutable; smart copy semantics; etc) as often as humanly possible.

* Multimethods allow arbitrary dispatch (most versatile kind of polymorphism) and there is also a faster method when you only want to dispatch by protocols (the (sadly) 'usually' only way to dispatch in most OO languages) that reuses JVM notion of classes and interfaces behind the curtains.

* What you don't get is encapsulation, (and many, a great many authors cite encapsulation to be the definite trait of an OO language,) it can also be argued that immutable values do not need encapsulation per se. A value should be able to stand on its own, convey the semantics it needs & so on..

Re: Ask HN: What cool development languages/tools changed your career?

#175
post #21

Go recently, and Clojure previously. Clojure forced me to think in a radical different way than I was used to. I started with massive functions that easily became unreadable, and slowly adapted purity and wrote side-effect free code. The paradigm shift affected me so much that even in other languages, I started writing pure code and use function composition more and more often. Coming from an imperative background, f…

So, what stack would/do you use/recommend? Elixir + Go + ???

Re: Ask HN: What cool development languages/tools changed your career?

#176
Erlang. I used to be a C/Java kind of guy with a little bit of C++ and PHP sprinkled in. Got tired of using GDB to rummage through core dumps in order to figure out C/pthreads concurrency bugs. So looked into this new fangled thing called Erlang that came with this weird programming model called "functional programming". Boy I was hooked.

Fast forward 7 years and a couple of increasingly lucrative and interesting jobs...

Scala. Getting a bit bored with the Erlang ecosystem, got offered an (even more interesting and lucrative) opportunity at yet another startup, that was running on Scala/Akka/Reactive Streams. Jumped at the chance and went through what was probably the most grueling 6 months learning curve I've ever been through. Got to appreciate the benefits of a strong type system and a thoroughly modern/flexible language. Also gained a renewed appreciation for the simplicity and practicality of Erlang and it's virtual machine :)

That's where I am now. What comes next, I am not sure. Maybe Haskell or Clojure. In any case, after all this it feels like I could handle anything anyone throws at me.

Re: Ask HN: What cool development languages/tools changed your career?

#178
post #139

Earlier quoted context omitted.

> I never thought the day would come where I prefer .NET Right!? Half my co-workers still think I'm joking when I say C# or .NET I still strictly develop C# on Linux, using JetBrains Project Rider and VS Code. I run production apps on Google Container Engine. I'll test in Windows for cross platform apps using Visual Studio Community Edition from time to time. Never messed with Azure but I think they have some nice in…

Is Project Rider usable already? I remember it was sort of in alpha not long ago

It's still in EAP, but has stabilized a lot in recent builds. The debugging story is not quite there for .NET Core, so I switch into VS Code for debugging right now.

Re: Ask HN: What cool development languages/tools changed your career?

#179
Java changed my (professional!) life. In 1999 i was able to develop desktop applications for both windows and linux without (too much) pain thanks to the JVM. It was love at first sight. After graduating i started developing web applications, always in java and it was very cool.

Six years ago i started developing android mobile apps, always in java! So java was my love and game changing language and i still use it today for both web and mobile projects (Spring is a beautiful and easy to work with web framework).

During all these years i have become a proficient developer also with groovy (Grails was great, but sloooow and little adopted), with objective-c developing iOS apps, php and javascript so i agree with who said that it is fundamental to learn different languages, but my favorite one is still JAVA, even today!

Re: Ask HN: What cool development languages/tools changed your career?

#180
post #111

Earlier quoted context omitted.

Have you heard the joke yet about Perl being a write-only language? Have a look at Python, Ruby or Perl6 for your next change of goto language. One of those should still fit your thinking style and should ease some of the pain points of working with Perl.

That joke's not true at all, if you write your code well. It comes from many people writing really bad code and sharing it widely through cgi script archives. Lots of stuff on CPAN was bad too. And of course there was a lot of intentionally-bad code too. These days I'm writing C# web apps, with plenty of client-side javascript. My problems dealing with large complex codebases went away years ago; Perl helped me to di…

>That joke's not true at all, if you write your code well. It comes from many people writing really bad code and sharing it widely through cgi script archives.

Here's the thing. If I read Perl code written by someone new to Perl, it's hard to read.

If I read Python code written by someone new to Python, it's easy to read.

You can write good code in almost any language, so yes, of course you can write readable code in Perl (and I expect experienced Perl programmers write readable code). With Python, everyone writes readable code (albeit some people write more readable than others).

Actually, Python is one of the few languages I've come across where the beginner's code is usually easier to read than an experts (who are more likely to use more obscure features of the language).

Post reply on HN