Same, it usually whacked about half the attempted majors into another major. In the first half of senior year. They kept wondering why their program wasn’t growing much even though similar colleges’ programs were growing like mold on a dorm shower curtain. I enjoyed the course and never used the primary skills taught in it again.
It really depends on what you do, but somehow, I actually did end up using some of the things those courses were teaching. It turns out the visitor pattern is extremely useful for writing JavaScript code transformers.
I definitely read this as you were a third year French major being forced to taking a compiler course for a moment and went wtf. Then my brain slapped itself and realized you mean you’re a student in France.
Haha yeah I meant that I was studying computer science im France and not studying french. Here in France, bachelor are called licence and are only 3 years compared to 4 in north america afaik, but there are way fewer electives
Compilers are a specialized topic - and syntax design is fiddly - but it really is no harder than any other sort of program. A lot of the hard theoretical work was done back in the sixties and seventies. You don’t have to start from scratch. These days it’s “only” a matter of implementing the features you want and making sure your syntax doesn’t leave itself open to multiple interpretations. (just as arithmetic, e.g. ‘5 × 4 - 1’ requires some rules to make sure there’s only one correct interpretation, so do language syntaxes need to be unambiguous to parse. )
Don’t get me wrong - writing a language is a lot of work and it’s super cool that OP has done this! I just want to stress that language development is 100% doable with an undergrad degree. If you understand recursion and how to parse a string you already have all the theory you need to get started.
Valuable input! I actually am an undergrad student. There are a lot of frameworks out there that support writing languages, with MPS being one of them.
If I’d start from scratch again and had a little more time, I’d frankly try writing an interpreter myself, instead of trying to conform to weird framework syntax, which I won’t be able to reuse in any other context.
Saying syntax design is fiddly is an understatement. I focused very hard on getting an abstract syntax somehow finished before working on generation in my first iteration. Then I had so much technical debt, that I couldn’t get anything to work and had to rewrite a lot. So I scrapped it all and started again, starting with top level concepts including generation and only implementing some lower level ones, once everything around it worked properly.
It’s likely transpiring and not compiling, so it’s a lot easier than it seems. Source: made a language that adds features to Python and transpiles to valid Python.
It doesn’t compile or transpile in actuality. It generates Java based on an abstract syntax tree. The concrete syntax is not considered in Java generation by MPS.
I’m looking forward to the Forgejo Federation to be completed.
It will be nice to not have to choose between self hosting your repository and having your repository discoverable.
Is forge federation ready to be used by developers around the world? Not yet.
But the first Forgejo release with native federation implementation based on ForgeFed and F3 is expected next year.
Info from June 2023: forgefriends.org/…/2023-06-state-forge-federation…
Will things like setting up a “stack” in portainer on docker be able to use the github alternatives like codeberg? or will those kinds of things need to be rebuilt?
Anyone got a commmand line tool change all my stuff? Because if I have to do change all the remotes all the time, for dozens of projects I’m going to lose my mind.
Also the migration on gitlab/codeberg looked like an amount of effort that doesn’t round down to zero.
(note, the GitLab Enterprise Edition, which is provided to the public on gitlab.com, is (like GitHub) trade-secret, proprietary, vendor-lock-in software)
Isn't EE source-available but proprietary? Plus if you just use the free tier you're not using any enterprise features
there is, it’s called “releases” and it’s like 2 clicks to download an executable, it’s not a github issue at all, and github isn’t meant to be where you get your executables anyways
I still do sometimes. Wish they release a build so I don’t have to download all the dependencies and learn how to use a new program to build the damn thing
This is very relatable, whenever someone asks for anything of any size then they’ll never know what they want until you show it to them.
I’ve started to do a bit of overengineering every now and then when I have a hunch they might want to charge something about it later.
I created a GUI for changing every single string of text on a webapp for admins, showed it to them 10x and they complimented me on how easy it is to use and change any small string in it.
Project then gets halted for Corp approval reasons and they come back with a PDF of changes they want where half of it is text changes.
I recommend insulating yourself from stuff that is subject to change like payment providers or other third party integrations. In ecommerce everyone wants something like “shipping but different if the client’s name ends with ‘SHIP1’ but use default if his number is the default number” and since they asked for the wrong thing you’ll have to do a fast revert.
Never mind, this is getting into rant territory, lol.
As a builder, I have had this scenario play out dozens of times. Clients paying millions for design and being shocked at what they get. My favorite was the charity that the architect spec’d custom handmade tile from Italy for… in a service bathroom lol. 40k to tile one wall of a bathroom for a charity that struggles to keep its doors open.
But programming is worse. In your analogy, once you finished the wall they’d come to you and ask you if you could „make the finished wall cheaper somehow?“ (because they are so incompetent that they think programming is magic and can magically change things in the real world).
And when you logically answer „no can do“ they won’t wake up to the fact they’re asking stupid questions, but rather think of you as not competent enough…
I get this is a meme, but the most successful projects are the ones that quickly get you running and are supportive to new users. I’ll get off my soapbox.
programmer_humor
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.