Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Beginner-friendly languages from the last decade?
7 points by johnblood on March 6, 2020 | hide | past | favorite | 12 comments
I just started learning Ruby as my first language. I know that quite a few languages have been created in the last decade, ie Swift, Go, Rust, etc. Are there any recently created languages that are worth learning. I looking for something easy to learn (for beginners) and cross-platform.

Wren is a great little language in the Lua sector, but more traditional than it (or JavaScript). Use it with the recently announced DOME to get started with some simple games (People, please don't let beginners start with webdev!)



Having said bad things against JavaScript, I believe TypeScript might be a good start. Definitely a large community support and good tooling.

The problem with either of those is that you don't just need a decent language, you need decent teaching materials. And there's little of that that I'm aware of -- and Rust/Swift/Go aren't even intended for first time programmers (Although the Go Programming Language book might serve well enough, after all we got quite a few people who started with C, a language equally unsuitable for the beginner)

Pharo is a bit too "old", with 12 years (or 24, or 48, depending on how you count), but the environment has a neat little tutorial, and "Pharo by example" is a good book.


Personally, I'd recommend older stuff/languages. Do the Coursera SML course and you're way more ready for the hot new trends like Elm or ReasonML than your fellow Java/C#/C++ grognards.


>(People, please don't let beginners start with webdev!)

I actually think Web Development should be what every new hobby programmer should learn. It is the quickest, easiest way to get simple, understandable, showcase-able results.

I kind of miss the good old days of WYSIWYG Dreamweaver and Front-page.

Unless you're really setting out to create something for your already existing home page or great web idea, or you're already a web designer wanting to visit the coding side, too, I think web development is a way too heavy load for the beginner.

You have to not only learn your language of choice, but also HTML, maybe even CSS and the fight with the query/respond nature of HTTP and/or asynchronous JS, callbacks etc..

Maybe if you're starting out with some Scheme setup where you've got an abstract page description DSL and a continuation-based framework.

No problems with keeping that as an intermediate, "now you're a real programmer" goal. But let's start out with "input name/fahrenheit -> print greeting/celsius" for a while and learn about structure, data types etc.

Simple graphics get you something that you can show your relatives and friends, too ("I made space flappy bird / the mandelbrot set"). And with way less mental overhead.

Crystal, Nim and Julia are modern languages and reasonably easy to start learning. Crystal is very close to Ruby in syntax (but not identical). It is not cross-platform yet, but developers are working on a Windows port. It is not yet at version 1.0 (Nim and Julia are).

All are general purpose languages but each language has attracted developers concentrating on different fields. Julia is designed for high-performance scientific computing. Nim has generated interest from game and graphics developers. And Crystal has become popular for server-side Web development. But you'll find developers using these languages for a wide variety of tasks.

Crystal: https://crystal-lang.org/

Julia: https://julialang.org/

Nim: https://nim-lang.org/

Nim is very close to a statically typed Python.

FreeBASIC allows you to create executables for Linux, Windows and Dos. It has the ability to use MS QuickBasic code but also includes many more modern features. https://www.freebasic.net/

Kotlin is excellent. All the features of Java, but much more concise. It's close to pseudocode, maybe even better. So you spend your time just coding and what's on your mind instead of wrestling with design patterns.

Both Racket and Julia are pretty easy to pick up. Though to be honest, I would recommend starting off like how I did: C.

What are you aiming to build? Without any additional detail I can say Elixir fits your criteria but may not be what you actually need! It's beginner friendly in my experience, cross-platform, and is a functional programming language which I'd put in the pros column for beginners.

My main goal is to create a couple of applications. I'm not a big fan of web dev. I want to write for Windows and Linux.

Honestly, while it's not perfect, javascript will likely give you most bang for your buck. You can use it client side as well as server side. It's not the perfect tool for every situation, but you certainly won't regret knowing it.

JavaScript. In your browser, no need to mess around with a dev environment, and you can see something happening in front of your eyes (making DOM elements change, etc).

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