There are converging factors that will give back some control but I think people should be treating that convergence with more urgency than we do now.
Of course the terminal should also evolve, new standards need to be set.
1,252 karma · joined August 29, 2015
Edit: I have finally stopped somewhere to try and become somebody. Now I work on datalisp, this is not very easy to learn about as of now but you can join the telegram @datalisp or read the things on datalisp.is (currently forwards to https://sr.ht/~ilmu/tala.saman)
I have now thoroughly doxxed this account but bear in mind that it is not very secure and may be shared by multiple parties (at least with some prior consciousnessess of mine that are less influential on my behaviour than they used to be I suppose).
There are converging factors that will give back some control but I think people should be treating that convergence with more urgency than we do now.
Of course the terminal should also evolve, new standards need to be set.
But yeah the real answer is lambda calculus, see lambda lisp and justine.lol
By the way, check out datalisp.is, I think we should re-encode the web :)
These are the first principles in question, now from there your architecture is mostly determined, you can fall back on known patterns and decades of research. The axioms are the architecture.
Please take a long hard look at how the implicit assumptions behind these discussions do not line up with reality and then move on to building the web of trust with me :P
Aren't bits the universal interface? Bytes have different sizes, text has different encodings, ...
Sure if your value add is content then go ahead and use mature tools within the paradigm, but if you want to cause a so called "paradigm shift" then you'll need to understand where the progress is happening and what kinds of opportunities it creates.
Ocaml for example is looking more and more enticing. Standard meta language is used by academics and programming language theory is developed in it. Meaning that it has a good long term trajectory (along with lisps I suppose).
Of course we are about to grow out of syntax, soon it'll just be another config param in your editor.. but I don't think these "obvious choices" you list will all be as well positioned w.r.t. that change.
Right now it may be harder to agree with me than with you, but that makes me think of a hn thread I was reading recently where people didn't want to admit to being programmers (in public / to strangers) because the perception is starting to be that what we do is immoral. Sufficient mastery of programming will make it a boring thing that everyone knows how to do but lowering the bar to that point won't happen within the web paradigm we currently inhabit. We'll see if wasm brings us closer but I think it will take more than that.
Anyway, I'd say your advice is good but not great. A CTO should be able to assess which tools fit the problem they have for the timescales they're considering. If they're swayed by your comment (or mine for that matter) then they're not fit for the role. The person you are actually talking to is someone who is building a company that suffers tech while the core business is something else or a company that is meant to be sold to some giant.
Here is a paper about it https://www.academia.edu/2241961/_Ancient_Egyptian_Rhetoric_...
We need something like a "gradually typed version control system".
However I'll do a bit more now than drop the datalisp.is link :P
What is metaprogramming? Do we metaprogram when we create feature branches in our version control system? Do we metaprogram when we give input to running programs? Do we metaprogram when we use type systems to prove things about our program? Do we metaprogram when we build machine learning models? Do we metaprogram when we package software? For me: "yes" to all of the above.
Isn't "metaprogramming" such a wide-reaching term as to be essentially meaningless? I believe that some words like "language" or "game" can be stretched to cover everything.. so rather than words they are more like perspectives. Metaprogramming is such a thing, it is a perspective, and it happens to be the perspective that I'd like to be able to employ more effectively.
Originally I was deep in math world looking to learn what the future of programming would look like, but I got increasingly frustrated with all the amazing tech they'd developed (the mathematicians) because it wasn't manifested in the cyberworld.... So I figured: I want to build distributed systems. In order to build distributed systems I need a concrete representation for data so that the peers can communicate.
Thanks to hn and lobsters I was aware of many possible representations but for various reasons I believe that canonical S-expressions are sufficient.. For the sake of argument let's assume this is the case; then suddenly there is a concrete place to manifest all the ideas.. okay so what ideas are most urgent? In my mind it is to explore the space of coordination-free programs and this space is spanned by datalog-ish expressivity. From there this name is born: datalisp... I sincerely believe that this is the easiest thing to agree on as a somewhat eternal foundation for further developments in software engineering, otherwise I would still be looking for that foundation.
However there are too many people who are not ready to move on from our current way of keeping score in society and it is hindering our ability to respond to reality. Afaict the highest priority is climate change (at the moment), everything else is noise. We should be working to bring people useful tools for coordinating a response to that crisis but instead I'm shunned, broke, homeless, etc. All because I refuse to be a part of the problem (and I refuse to be a "hero" so I don't do anything well enough for others to admire, I've been trying to leave space for some ambitious academic type or business type but I'm reaching the end of my patience).
What is the goal? why do we work towards it? For me the answer is clear: we need economics that are less vulnerable to the tragedy of the commons. The reason is we need a way to systematically curb pollution.
Now my approach is debatable but no one seems interested in even having the debate. This is perplexing.
You will die eventually so facing that honestly is good but how does it affect your assessments? Are you going to give up and hedonist? or are you going to try-hard and conservatist? My 2c is to find some balance between the two and find stability in the habits that you enjoy.
Key idea though is to find relaxation, the less you regret or worry, the quicker you can calm down. The more rest you can grab during intermissions the more comfortable you will be. Don't idle on your phone, find peace in boredom.
Just remember that competence is king and open your eyes to the opportunities that exist around you. Find customers not employers. The former cares about things that you know and understand while the latter will want you to prove things that will cost you a lot to prove. Education is a ridiculously huge opportunity cost and if you do it with loans or while relying on benefits afforded by "student status" it will also become a burden on your health via anxiety about maintaining said status (ymmv I personally don't care much but this affliction is quite common fwict).
Also. Programming is a means to an end. If you already have some web scraping skills etc. then you have some advantages when looking for / exploiting opportunities. But without certification it is tricky to convince anyone to give you a chance. Therefore; customers not employers. Programming can help you test your assumptions w.r.t. business model and manage your business.