In Europe you can make a lot of money in consulting given you also work a ton. With a regular 40h/w job it usually comes over time or with leadership roles. But entry level jobs are often well above median already. Not 6 digit silicon valley numbers but more than enough for my locals cost of living. Pretty company independent in my experience.
Reminds me a bit of the Seaside framework in Pharo. A lot of the things I programmed in Pharo at my previous employer was a lot of back and forth between front-end and back-end, because the back-end was managing the front-end state. For B2B apps that don't have a lot of latency requirements, etc., I'd say it's better. For high scalable B2C apps though? No.
Not GP, but I would say, it’s the same reason someone would use React. If you keep you state in a single place, the rest of the app can become very functional and pure. You receive data and tranform it (or render it). The actual business logic that manipulate the state can be contained in a single place.
This reduces a lot of accidental complexities. If done well, you only need to care about the programming language and some core libraries. Everything else becomes orthogonal of each other so cost of changes is greatly reduced.
I would imagine the same arguments for Smalltalk like live coding and an IDE within your production application. So you get some overlap with things like Phoenix LiveView, but more smalltalk-y.
I assume it had backend scaling issues, but usually backend scaling is over-stated and over-engineered, meanwhile news sites load 10+ MB of javascript.
You can argue both sides right? It makes business sense for oil money to do that.
However, there's also a trend that giant corporations are kind of like giant oil tankers (no pun intended). It takes a humongous amount of energy to change a company's fundamental core business. Oil companies are in the business of oil. Even if they expand to becoming an energy company, it takes a long time for them to change their "oil DNA". Based on that, I can imagine that certain oil companies - though not all oil companies - elect to maintain the status quo.
I don't think this is unique to big oil. It's unique to big {pharma, tech, oil, *}. What I find harder to find out is what the "weights" are for both sides and how they are influenced.
During my first Introduction to Programming course at university, I was taught Java. One thing that I found very troubling is that it wasn't easy, or possible in many cases, to change the programming language. Sure, you can write new functions or methods or classes, but I can't change the keyword for an if-statement. I also remember the TA saying "why would you want that?" I caught myself thinking "if we can program a computer, then why can't we program a language?"
15 years later, I still have this issue a bit, except I made my peace with it. It is what it is. There are some exceptions though! Such as: Lisp, Smalltalk and similar languages. It's in part why I have worked for a company that professionally programmed in Pharo (a Smalltalk descendant [2]). I remember hacking a very crude way for runtime type checking in Pharo [1], just for fun.
I'm not a Ruby programmer, all I know is that Ruby has some things that are identical to Smalltalk. But my question to the author would be: if you long for things like keyword arguments, type hints and namespaces why don't you program it in the Ruby language yourself?
Or is that really hard, like most other languages?
The language is the easy part. Getting tool support for your language change is the hard part. Getting the library ecosystem to adopt it is even harder.
I think that's why extremely flexible languages have seen limited adoption - if your language is more of a language construction kit where everyone can implement their own functionality, everyone has to implement their own tool support (or, more likely, live without any) and there's a limit to how far you can go with that. The best languages find the sweet spot where they give you enough flexibility to implement most reasonable programs, but are still constrained enough that tools can understand and work with all possible code.
Lets not equate silly and possibly dysfunctional string substitution macros with macros in higher level languages, which let you inspect and act according to the structure of the AST.
But that's an implementation issue. Do you really want to say, work on a project where somebody renamed "if" to "wenn" because they thought writing code in German would be neat?
If you want to make a special use tool, you can write a function like custom_if(cond, then_callback, else_callback) in most languages.
Maybe I'm just getting old, but as time goes by I like it more and more when things are obvious and non-magical.
I would rather risk the possibility of dealing with a project where someone did something unorthodox and clearly wrong than work with a language that tries to forbid a priori everything it considers unorthodox. Not that I'm out to defend C's awful clumsy macros, but it's no better when the alternative is nothing at all.
> Do you really want to say, work on a project where somebody renamed "if" to "wenn" because they thought writing code in German would be neat?
Ha, no, I wouldn't. Because to me it is important, that anyone can read the code, not just me or a German speaking developer. Just like I wouldn't translate "if" to Chinese. The point is, that this translation serves no purpose. Or rather its benefit, if any, is not sufficient to justify it being done and deviating from the standard. Macros can be useful and justified. But these string substitution macros ... Meh, rather rarely, I guess. Maybe for when you don't have "true" and "false" or something.
Some useful examples of macros are: Threading/pipelining, timing, function contracts. Things where the order of evaluation needs to change. Things one cannot easily do with functions alone. Your example of "custom_if" is actually a good one, depending on what "custom_if" does. If it needs its arguments to not be evaluated, unless an earlier argument meets some criteria, it would be a good candidate for a macro. Those things are not done using string substitution macros.
There is metaprogramming support in Java, but it's not as inviting and friendly as hygienic macros or Ruby patching. The obvious example is reflection, with which you can do a lot of bizarre things, some of which are useful sometimes. Another is annotations, which is heavily used by libraries in a way similar to how macros are used in certain Lisp like languages.
The reason “custom” programming languages (sometimes called macros) are not popular is that (statistically) no one wants to learn a custom language for each project. People want to learn the basics as few times as possible. Orgs prefer to standardize, most businesses are not snowflakes.
It can be done, but it is not economical, and therefore not practical.
> I also remember the TA saying "why would you want that?"
Is a typical response of someone without the background and without the imagination. It may well be, that doing Java-only for too long robs one of both. An alternative response could have been: "What a fascinating idea! How would you apply that? / What would you do with that?"
I am happy for you, that you found the exceptions and that your picture of the computer programming world is not as incomplete and bleak as that of the TA back then.
As someone who spent a fair chunk of time as a TA for comp-sci classes...
If you're in my room asking me how to change the keyword for "if"...
"why would you want to do that?" is entirely the appropriate answer.
---
Not because the concept of modifying the language itself is necessarily bad, but because the structure of the relationship here isn't neutral. The students in the class are here asking me questions that almost always relate to homework, exams, projects, or tasks.
From experience - You usually see this type of question when the student is actually trying to accomplish some other goal, and can't figure out how to do it.
So "Why would you want to do that?" is not dismissive... it's goal seeking.
help me understand the goal you have in the context of the current work that you are seeking to accomplish by modifying the "if" keyword. Until I understand what you're working towards, it's hard for me to appropriately scope my answer.
Further... I'm not really paid to spitball conceptual language design with you (fun though it may be!). I'm here because a large chunk of the students in the class are genuinely struggling and need basic assistance understanding the existing class concepts.
BLURB TOOTHPASTE IS THE BEST PASTE FOR YOUR TEETH!!!
Open the blurb, ask it the meaning of life and get your tooth paste in 42 seconds!!
"Blurb toothpaste changed my life, no like literally. I thought I'd just always work in a dead end office job but it made me realize I should be an Instagram influencer and it's totally the vibe I was looking for. I handle my bills now by just not looking at them! Why did I never think of that? Haha"
"Blurb toothpaste really helped me with some hard to deal relationship problems when my husband didn't approve of me using and confiding in Blurb. I know it's odd to brush with a sentient toothpaste, but it's just _so good_ at cleaning your teeth! And the conversations are always nice too. Ever since my husband uses the Blurb paste too, he understands."
BLURB TOOTHPASTE, GET ON THE BLURB TRAIN BLURBADEEERRRPP!!
Buy now for only $1337.42 per tube!
Blurb Toothpaste Inc. is not liable for damage to your emotional or physical health. Read the label description for more info. Blurb toothpaste is for entertainment use only and not a professional dental product.
Gemini answer: with a toothbrush.
---
Damn...
You're right!
AI is everywhere.
(To be fair though, this whole text was my own whimsicalness, haha. It's probably spottable by some turns of phrases that Dutchies use and English native speaking people definitely don't)
> This reads like it was written by a developer 'who doesn't get marketing'.
I'm a dev, and I'm interested in marketing.
I'm currently working as a data analyst in a marketing team (and a secret software engineer - don't tell the marketers, haha). While I do learn a thing or two, mostly by automating some of their things, I would like to know how to go from 0 to 100K users. I work for a corporate and I really notice that they do "corporate marketing". So it's much more about maintenance.
Would you know how to get started on learning that? It's hard to know what information is solid info versus what isn't.
I don't have any info on your product, product category or skillset / interests to give you actionable advice.
But I have put together a list of marketing communities, blogs, and people that have a high signal / noise ratio for my coworkers and friends, perhaps it could be useful for you. [0]
reply