I tried hard to like Go, but as of now, I just don't like it. What languages would you recommend that I check out? I already know Python and C, and I would like to learn something more performant than Python.
If you haven't used a functional language there's an alternative approach without the cognitive overhead of thinking about statements executing in time (most of the time). For a non-static typed example, Elixir (but that usually also brings in Phoenix framework). Zig is another interesting one for different reasons.
New programming languages tend to range from medium-to-large in size.
Here are number of keywords in some languages. Note: this is a bit of a blunt measure of a language's size so you may not consider it a measure of small surface area:
- Lua (21 keywords)
- Go (25 keywords)
- Julia (30+ keywords)
- Python (30+ keywords)
- Javascript (30+ keywords)
- Ruby (40+ keywords)
- Crystal (50+ keywords)
- Rust (50+ keywords)
- Nim (60+ keywords)
- C# (70+ keywords)
- PHP (70+ keywords)
Languages still in development
- Odin (30+ keywords)
- V lang (40+ keywords)
- Zig (40+ keywords)
A better estimation would be by language concepts, with some being more weighty than others.
I think this postcard remark may be a bit misleading sometimes, as in practice the complexity is shifted from syntax to the large class library in the system image, that packs a lot of functionality. But yet the environment is sweet and has great discoverability, with functionality like search by example. See https://youtu.be/HOuZyOKa91o
The Smalltalk flavor I strongly recommend is Pharo. There's a MOOC[1] on it, and there are several free books that cover the basics of the language itself[2][3], data visualisation[4] and numeric stuff[5]. [1]. https://mooc.pharo.org/ [2]. https://github.com/SquareBracketAssociates/PharoByExample9/r... [3]. https://books.pharo.org/deep-into-pharo/ [4]. http://agilevisualization.com/ [5]. https://books.pharo.org/numerical-methods/
More importantly, it is developed extremely conservatively which means
1) you don’t need to learn the syntax/feature of the month (like eg javascript/python)
2) the code you wrote a decade ago will still work.
That said, it does sit on top of Java/JS so you can access those parts easily if you need to.
https://wiki.freepascal.org/Reserved_words
That's clearly more than 30 something. It's a huge system in other respects, baroque, I guess somewhat like Common Lisp once compared to Scheme. Whether still useful debatable. Lua indeed and JavaScript is what comes to my mind. Or if you already like Python and it's just about "speed" that's what Nim is supposed to be all about. Besides hardly getting more performant I'd keep my fingers off dead technology (like Forth!) unless you're really into the history thing, exotica or the sheer mind-boggling, which is also cool but sadly rarely productive.
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
+ & += &= && == != ( )
- | -= |= || < <= [ ]
* ^ *= ^= <- > >= { }
/ << /= <<= ++ = := , ;
% >> %= >>= -- ! ... . :
&^ &^= ~
25 keywords, 48 operators.Clearly more than 30 something. Since OP considers Go a small surface area language, I don't see how that list from Turbo Pascal would disqualify it.
> JavaScript is what comes to my mind.
If they suffer from analysis paralysis with Rust and C++, I don't see how JS would be much better with its millions of frameworks.
> Besides hardly getting more performant I'd keep my fingers off dead technology (like Forth!) unless you're really into the history thing, exotica or the sheer mind-boggling, which is also cool but sadly rarely productive.
They also never said they cared whether the technology was live or dead. What's it mean to be dead if it can still be run anyways?