Live data from Hacker News

Ask HN: Which systems programming language(s) is/are beginner friendly?

news.ycombinator.com

11–18 of 18 posts

Re: Ask HN: Which systems programming language(s) is/are beginner friendly?

#11
post #7

Depends a lot on what you call "system": do you want to program embedded systems? write device drivers? write a database server? compilers?

What if a programmer wants to lean a language and not a domain? Devoid of domain, which systems programming language is easy for beginners? It will be quite an ask of a beginner to either work on embedded systems, write device driver, DB driver or compiler. So for beginners, forcing a domain from the start would be counter productive I think.

Beginners tend to overestimate the differences between programming languages and pay attention to superficial things as opposed to things that matter. A good chunk of computer science is a branch of math which is eternal: if there are aliens who live under some the ice on some moon and they have computers they are going to know about the results of Turing and Gödel.

A language like Java or C# is perfectly fine for "systems" tasks such as compilers, database engines, etc. You don't need to interact with memory on a low level and you can afford to pay the cost of automated memory management for some guarantee that you don't get use-after-free and similar problems.

For that matter if performance doesn't matter you can do a lot in Python, Javascript, and other languages that people think of as "applications" languages.

For some other "systems" tasks, such as embedded, you are going to have a choice between C/C--, Assembly and maybe Ada or a Pascal variant if you're adventurous. In that case you need absolute control over memory layout. C has the particular advantage of portability. I think it's an atrocious language to program the AVR-8 arduino but your code is portable to a more powerful board and your skills are portable.

Rust has the "borrowing" model that is potentially more efficient than the garbage collection model of languages like Java and gives you some control over the layout. You might like it or you might learn to hate fighting with the borrow checker.

What domain you are in absolutely determines what languages you can use.

Re: Ask HN: Which systems programming language(s) is/are beginner friendly?

#12
post #6

Earlier quoted context omitted.

Is Excel a systems programming language :)

Sure, it's where you write the high-level orchestration code for things that haven't been made sufficiently repeatable yet. :) Personally I tend to use it for light one-off database metaprogramming. Get a lit of objects that need to be maintenanced, generate the appropriate commands with a column of identical formulas, and then paste that back into the sql utility. (For more complex or long-lived things I'll use a mo…

I've seen other people do that. I think it's better to use a language like Python, but I have seen people do SQL scripts and many other kinds of code gen with Excel.

Re: Ask HN: Which systems programming language(s) is/are beginner friendly?

#13
C is not friendly but it sets you off on the right path.

Adding a bit of C to your tool belt will give you success wherever you go. The concepts it teaches are invaluable in understanding why things are built the way they are today. Everything from memory management, to trying to solve all these vulnerabilities, to why new languages have these crazy constructs.

Re: Ask HN: Which systems programming language(s) is/are beginner friendly?

#14
post #2

The first two things that come to mind are Python and Go.

Python is not a systems language. I would also recommend Go but it depends on what is meant by 'systems' as it doesn't interface well with threads or memory allocation.

Re: Ask HN: Which systems programming language(s) is/are beginner friendly?

#15
There are 3 types of programming languages you can learn: Modular programming, Object oriented, and Functional programming

Python- it has a very simple syntax and it’s easy to learn. It can be used for modular programming and object oriented and it is forgiving if you don’t strictly follow the best practices. Therefore it can help to make thing working while you’re learning

Re: Ask HN: Which systems programming language(s) is/are beginner friendly?

#16
Never done any professional systems programming. C is what comes to mind. But don't let the simplicity fool you. It's pretty easy to shoot yourself in the foot with C.

Recently I've been coming across ML family of languages. I see compiler books in OCaml. Atleast in the academic discussions I see the need to get away from C in terms of building reliable computer systems. Maybe it's a bit of a stretch to call it a systems programming language but maybe something to consider.

Post reply on HN