3 ms·
When it comes to languages, I was enlightended when I changed from {}; languages to Python. I could never go back.
by TekMol 2y ago
When it comes to languages, I was enlightended when I changed from {}; languages to Python. I could never go back.
- Trasmatta 2y agoRuby is the sweet spot for me. I don't like the syntactic whitespace in Python, but still prefer the cleaner look it not having braces everywhere.
- librasteve 2y agoraku - the bastard child of functional and OO class MyTable is export { has @.data; multi method new(@data) { $.new: :@data; } method render { table :border<1>, tbody do for @!data -> @row { tr do for @row -> $cell { td $cell } }; } }
- DonHopkins 2y agoMany languages like Ruby have sweet "Syntactic Sugar", but Raku has "Syntactic Syrup of Ipecac".
- librasteve 2y agolol - thanks for adding to my vocab! [in defence of raku, while it truly is marmite wrt Ruby / Python, there is a very loyal core of smart people that love the freedom and expressiveness it offers]
- klibertp 2y ago> there is a very [tiny, very] loyal core of smart people FTFY ;) Honestly, I love Raku - it's almost like Racket of the non-sexp world - but the community is microscopic, and the development is slow. It's a shame because, solely based on features and in terms of design, it's a serious contender for the most powerful dynamic language out there. It's packed with interesting features (junctions, phasors, traits, quote/unquote macros (soon), typed variables and subsets, coercible types, augment, OO system with multiple inheritance, interfaces, generics, multi-subs and multi-methods everywhere, custom operators including circumfix, regexes and grammars, etc, etc...) out of the box and it's actually really impressive how all these features work together in a cohesive design. Unfortunately, the underlying implementation seems a bit chaotic; some features are either not fully implemented or specified, the performance could be better, and so on. So, while I love and still use Raku for almost all my scripting, if I were to start a serious project, I think I'd go with Common Lisp instead. CL has fewer features out of the box, but many of the missing ones are one `ql:quickload` away (or you can use CIEL), while the underlying implementation (SBCL in my case) is diamond-solid. --- Aside: that `render` method could be sweetened a lot! For example: tbody @!data.map: { tr .map(&td) } ==> table :border<1> or: tbody @!data.map(*.map(&td).&tr) ==> table :border<1> or finally (using the fact that hyper descends into subarrays): tbody @!data».&td.map(&tr) ==> table :border<1> (I think Raku is unrivaled in one-liners!)
- librasteve 2y agothanks for the code examples - personally I prefer mine (but that's my opinion) one liners have their place - but I like to avoid compression for the sake of it to put some numbers on it there are 146 folks listed on the main IRC chat (plus a bunch more (79) via the Discord channels) right now and 1.5k members of the sub-reddit
- klibertp 2y ago> personally I prefer mine Sure! I just thought if we're talking about "Syntactic Syrup of Ipecac" :D we can as well take it to the extreme, just to show how sugary Raku can really be (if you want). As for the community size, I'm on Discord for a bunch of languages: - Haxe: ~800 (users on the server) - Pharo: ~300 - Rust: ~10k - Scala: ~900 (might not be the gathering place of the community, would need to check) - Nim: ~700 - GToolkit: ~160 Taking your numbers, the community is about as big as GToolkit, which is a niche distribution of a niche language (Pharo Smalltalk). I think that's enough to keep the lights on and even to occasionally produce something really impressive. At the same time, it's not enough to consistently polish all aspects of the language and the ecosystem: with a community of that size, you will always be running into "not implemented yet"/"no bugfix for years" problems. Which is fine in some settings, but you need to keep this in mind.
- deleted 2y ago[deleted]
- tail_exchange 2y agoIt's the other way around for me, and I don't understand why people like Python's system so much. Moving code around and changing scope in other languages is just a matter of adjusting the braces, but with Python I need carefully reindent all affected lines. It's error prone and annoying.
- anonzzzies 2y agoPeople say (and it is true) that you read more than write, so your careful indenting is for that case. I don't find python easier to read than c; I find the verboseness quite annoying actually. Plus what you said in usability for the coder. It is nice as teaching language but beyond that I have no clue why people use it; if you read the modern AI code in it, it's not very readable at all as that is not about python but rather numpy and torch etc which could've been done in another language which might have been nicer for this purpose. Now (check for instance gpt2 or so) it's verbose typing/reading for stuff that's not readable for someone who doesn't understand the theory anyway.