Live data from Hacker News

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

news.ycombinator.com

21–30 of 315 posts

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

#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, functional programming was a bit difficult at first to wrap my head around, but now I love it! (Eventually I even ditched JavaScript for ClojureScript).

Go recently because it was my first truly compiled, statically typed language after almost 7 years of working (I know, right?). My entire career consisted of Python, PHP, JS, Ruby - you get the idea. Go changed that. On top of that, it is a very biased language that forces it's coding standards on you. Not all are good but you learn a lot about the design decisions behind them and why things work in the way they do.

Plus after working with it for a while, even other compiled, statically typed languages like C++ became a good chunk easier.

And as a extra, very recently: Elixir. Loving functional language, Elixir taught me erlangs genservers and process manage and oh boy! I don't understand why that's not the default tool we use for webservers all the time. It just seems like a natural fit vs other languages. Thanks to supervision trees, it is very easy to write fault tolerant, highly concurrent applications that span multiple servers, without the need for extra tools.

For example: You can spin subprocesses up at any point, communicate with them, kill them, let them crash without fearing that anything else in your application is affected. When previously you needed a queue server, a cache server, background workers, service crash recovery, long running requests processing and more to build a concurrent system, Elixir makes it very easy to implement these things extremely easily as subprocessed without the need to leave your application and grab tool X (upstart/cron/rabbitmq). Worried that something will crash? Just let it crash and the supervisor restarts it. Worried that the supervisor crashes? Then the supervisor of the supervisor restarts the supervisor.

Your background worker process is on server 2 and you want to dispatch something from server 1 from the same mesh? Just use it's PID and let BEAM handle the rest. Same for Queues, Stores, Caches or anything really.

I am highly convinced that learning Elixir is something every web engineer should learn.

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

#22
Learning Python (in 2003). I use 5 different languages regularly and I've tried a half dozen more. I've worked in quite a few parts of the industry. Python seems to be the bread and butter -- it gets things done quickly and reliably in so many areas.

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

#23

Learning Lisp, more specifically Scheme. I became curious about it after reading ESR's "How to Become a Hacker". When homoiconicity and other Lisp goodies gradually permeated my brain, the computing world seemed different. I saw every config file differently, trying to see how the lines between config and code blurred. Method abstractions and bottom up design became much easier. I appreciated all those prefix-evaluat…

Scheme changed everything for me.

I feel sad when I hit special forms in languages, and can't just a macro to change the language to suit the way I want to do it.

It made every other language I used feel overly verbose. Sure, Scheme is a bit verbose, but with two or three macros, and a handful of recursive functions, I write about 1/3 of the code I would in another language.

Having readers, and parsers exposed makes it so easy to fit the language to the task, rather than bludgeoning the language with a hammer, or rephrasing the question till it almost fits.

Random example:

You need to allow a user to run half a dozen functions, with a syntax.

Normal approach, (after you've argued you shouldn't do this), is to write a parser and evaluator, and hope you didn't expose a security hole like SQL injection by accident.

Scheme approach: Generate an empty environment, attach only the necessary functions. Parse and handball to the environment.

Eval doesn't have to be evil, especially when the language provides the tools you need to sandbox users.

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

#24
PHP developper since +10 years, I learned little by little client side Js through Mootools (object programming 5 y ago). I started nodejs 0.10 2y ago and got a serius wow when i realised node 4 & generators & tj/co could efficiently replace line-per-line how i used to work in PHP (async-co, pg-co) with so much more power (browserify, mocha, istanbul, npm, ...). I guess today the switch is complete for me

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

#26
The biggest impacts on my professional thinking were caused by learning Ocaml and F#. Those impacted greatly the way I approach systems design and programming in general. The second biggest impact was probably learning Scheme and writing a scheme interpreter.

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

#27
Combo of vim+tmux+tmuxinator.

I work on many projects with many different modules, languages, databases... What this enables me is to be one single command and a seconds away from completely switching context while still maintaining basically identical environment. It encourages experimentation because you're language/project agnostic and it reduces friction to getting started which is a great boon for productivity.

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

#29
In a sense, Javascript.

But more importantly, when I read Javascript: The Good Parts by Douglas Crockford. It was my introduction (though I didn't realize it) to functional programming, closures, and thinking much more about scope. I went from thinking of JS as a pile of junk to a language with remarkable flexibility.

That doesn't mean I do everything in JS, but I find I like the language a lot more than most of my peers.

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

#30
post #9

Kivy ( https://kivy.org ) changed my career too. I make now a living mostly due to this project :)

What do you make a living with? I like Kivy but my clients would hang me from a tall tree if I would use it for actual projects because it feels very non-native.
Post reply on HN