It's not why people should blog in 2024, but why I (only applies to me, not you the readers). Let me share a few experience.
I have benefited so much from other people sharing freely, and I should share back without fear of any form of criticism or feedback.
For example, my wife was looking for this particular shrimp paste, which is found in Miri.
Turns out, the distributor is from Brunei, and you cannot find this in Kota Kinabalu. This blog post gave me lots of clues.
What happens when people do not share their experience? I wanted to apply for work pass for my wife. Guess how easy it was to search for info? Social media sucks really bad when it comes to searching info. Very little people blog about their experience, which makes sense - how many non-Sabahan Malaysian applies for work pass on a daily basis?
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
β Live Streamingβ Interactive Chatβ Private Showsβ HD Quality
Anya is LIVE right now
FREE
Free to watch β’ No registration required β’ HD streaming
I have two kids, both under 2 years old. I need to figure out a way to pivot my career away.
Dealing with a small toddler and a newborn is so difficult. It takes away almost all your time, and then some. There are times where I (genuinely) enjoy the struggle (it brings colours to your life), and there are times where I just want to slap both of them.
I also need to figure out how to start my career in tech? I'm getting older, I'm stuck in Sabah with such a small population and an industry that is focused (too reliant imo) on tourism and palm oil. And most importantly, I don't know what to do lol. Tech scene is focused on West Malaysia, and programming is simply a tool to build something.
What is that something to build? I have no fucking clue. π€·ββοΈπ€·π€·ββοΈ
So yeah I should really continue blogging. It helps a lot. Do some Advent of Code. Read some (one) book. Play with kids. Be more responsible in my conducts.
Because they are like those people selling financial freedom.
Lisp feels so irrelevant in game dev (desktop, non-mobile). C++ dominates this field. Flash successors plenty abound. XNA alternatives all around. Even Java is there. But where is Lisp?
Naughty Dogs
FF7
Kandria
...?
Let's be honest. These are not success stories. These list feels more like they use Lisp because they are extremely familiar with it. The fact that Naughty Dogs used Lisp doesn't mean Lisp is viable - it just means they have built extensive tooling around it; it is their secret sauce, and they will not share it (it is their rice bowl after all). No games or companies (on the Sony platform) before or after them used Lisp in a major way. It is probably not practical.
And furthermore, with the explosion of indie gaming some time ago, no notable Lisp games was released. Lisp is supposed to be the secret weapon for single developers or small teams - yet I see none of it.
On performance, it is said that Lisp can be 1.5-3x performance of C, and there are even claims that it can go faster than C because the compiler + runtime are included. Now, on the "faster than C part", it's quite hard to believe, when Java with tons of engineering work, finds it quite hard to be on par with C.
Now, that being said, I present my pet peeves.
Lisps might need a lot of effort to reach "close-to-C" speed. Java can have moderately decent programmers with low to moderate effort, and produce "close-to-C" speed. That is the true achievement of Java in my opinion. I don't have to be damn fucking smart or spend a lot of time to achieve great performance, memory safety, easy-to-read code, and more, with just higher memory usage. And these days, I suspect it is even lower than SBCL if you limit memory and use parallel GC. That is a feat that is hard to beat.
What about C++? Lisp can reach "close-to-C" speed. There are claims that Lisps can beat C in speed because of compiler + runtime. Those are only claims. C++ has already beat C in performance, with zero overhead, using a poor mans macro (C++ template) https://stackoverflow.com/a/18004168.
On to the word "tooling", Lisp developers consider tooling as the ability to extend the language, create constructs that are simply not possible in other languages. In the rest of the world, tooling means... tooling.
Like the macro LOOP. If this is tooling, then it is a fucking monstrosity. We all have limited mental capacity. If my program is going to have multiple LOOP-like mental usage, well.. fuck me.
Toolings are like.. IDEs. And sometimes they are so damn good it is not even funny. But the most important thing they do is to reduce your mental load, by being as smart as possible. Tooling does the work, you do the coding.
I sometimes wonder if IDE users realize you can do 99.9% of the same things with... | Hacker News (ycombinator.com)
And since I like Java, I will just say some things. Java the language is hilariously weak compared to Lisp, but the runtime, ecosystem, tooling, everything far outshines current Lisps. And the Java language are clearly designed by level-headed geniuses - at least they never claim that Java is the best full stop. Well, I consider them geniuses when I read Brian Goetz, Aleksey ShipilΓ«v, or Ron Pressler when it comes to Java.
And while there is a saying that Java needs a state-of-the-art GC because of all the garbage it produces.. well it is also because of this GC that you can have highly performant code with mediocre code, that won't blow your memory.
The funny thing is that from a purely technological point of view, Java (even th... | Hacker News (ycombinator.com)
JVM Anatomy Quark #11: Moving GC and Locality (shipilev.net)
Java is better than C++ for high speed trading systems | Hacker News (ycombinator.com)
A few more links to show why I feel these people are so delusional. If only they were more pragmatic
https://news.ycombinator.com/item?id=37458188
https://news.ycombinator.com/item?id=35006777 and https://news.ycombinator.com/item?id=35006777&p=2, search for lisp
https://news.ycombinator.com/item?id=37308747 and https://news.ycombinator.com/item?id=37308747&p=2, search for lisp
TLDR I am a fucking noob and I wasted a lot of time on Lisp.
Also Tumblr has terrible text markup.
Common Lisp has many implementations, but
More like many incompatible implementations - they may implement all, but have different ideas about non-standards like FFI, threads, and what not
Libraries like Bordeaux-Threads, CFFI, Closer-MOP actually tries to provide a baseline for ALL implementations, just look at all the #+ in the code - reading the libraries feels like reading how every implementation does things
When they say there's a lot of libraries, this is not what I have in mind - if standardising features across implementations is a library, then I have nothing much to say
If you are creating an application (not designing a library), the libs above are actually not helpful as they are another layer on top of the implementation itself
https://gitlab.com/gnu-clisp/clisp no Windows binary release since 2010, developer refuses to support MingW 64bit, GPL program
On Lispworks
Lispworks has GUI, tree shaker, ability to create shared libraries, and good support, but..
It costs way too much - USD 3,000 for 64-bit Windows, or about MYR 14,000. Daylight robbery. If I want a great GUI designer, there is JFormDesigner, one time purchase of USD 179. Intellij reaches price parity at 29 years.. the entire Jetbrains suite reaches price parity at 17 years..
Lispworks have Hobbyist starting at USD 750.. but anyone trying to justify that other hobbies also cost this much is missing a huge point - most hobby allows them to resell their stuffs, and you can even do commercial stuffs with it. I am pretty sure that you cannot sell back your license, and can only upgrade, which is paying another USD 2250..
Whereas Jetbrains has Intellij and PyCharm community edition - awesome products, free, and can be used for commercial purposes
All Lisp follows a standard, so it is portable/stable/etc
More like dead. No one bothers to standardise threads, C ffi, etc
The language has a lot of unnecessary nesting thanks to let/flet and friends - I can also use https://quickdocs.org/serapeum and use the macro local, but this library pulls 19 libraries, one of them Slime, which is used for .. I actually don't know why it is needed, isn't Slime used for interacting with Emacs???
https://portability.cl/ doesn't seem portable to me
Library situation is still bad
No implementation comes with GUI. Quite bad considering how having many implementations is considered a good thing (actually there are ABCL but that's cheating)
I am looking for https://docs.python.org/3/library/cmd.html, I see that https://github.com/vindarel/replic is a good library, and is MIT licensed. But it uses GNU Readline, which is definitely GPL. replic depends on cl-readline, which is GPL. So.. isn't replic supposed to be GPL because of its dependency on GNU Readline? The author owns the code for replic and cl-readline, but not GNU Readline
Out of the box, almost all the implementations doesn't come with batteries. (Racket included, as a user say it comes with a retrofittable fusion battery pack)
When I think of batteries included, I think of this.
I am looking for game development
I see xelf, it asks for SDL.dll, and a bunch of other dlls, which I have to supply. SDL1 last update was around 2013
This is one where "stable" or "will work for decades" fails badly
I see SDL2, it asks for SDL2.dll
I see raylib, it wants to compile C stuffs (which I did not install). Why??
I see Trial, I see the docs, I feel dumb
On the other hand
pip install pygame-ce, look at docs, viola
pip install raylib, copy starter code, viola
Download gdx-liftoff, generate project, open in Intellij, viola
The docs for these game libs are so easy to read, and all of them includes the DLLs required
Why don't Common Lisp stuffs include the DLLs? You expect me to put it in the Systems folder? Expect me to use Linux and apt install sdl/whatever? The idea that I "use Linux for easy development and then compile using Wine" is insane
And best practices..
https://google.github.io/styleguide/lispguide.xml
I might as well use C++ and read http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines, even Lisps programs eventually need to interface C stuffs, and Python can use nanobind with great effect
As to why I say C++ when talking about interfacing C, it is because these days, the world is built in C++
And more links
https://news.ycombinator.com/item?id=29017710
https://news.ycombinator.com/item?id=26065511
https://news.ycombinator.com/item?id=28040351
https://news.ycombinator.com/item?id=37458188
Please donβt assume Lisp is only useful for Animation and Graphics, AI, Bio-informatics, B2B and Ecommerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list. β Kent Pitman
Where?? Please show me where it is. Otherwise it feels like gas lighting.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
β Live Streamingβ Interactive Chatβ Private Showsβ HD Quality
Anya is LIVE right now
FREE
Free to watch β’ No registration required β’ HD streaming
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
β Live Streamingβ Interactive Chatβ Private Showsβ HD Quality
Anya is LIVE right now
FREE
Free to watch β’ No registration required β’ HD streaming