Am I out of the loop?
Why don’t people like Pizzacake?
Engineer and coder that likes memes.
Am I out of the loop?
Why don’t people like Pizzacake?
Like many others already said. Being self taught is ok, but employers need at least some kind of confirmation about your skills. So getting some kind of officisl certificate will make your job search a lot easier.
Microsoft offers a bunch of .NET certificates if you do their C# courses for example. You can also become a certified Linux professional.
Find something that interests you and then start learning by doing some tutorials. The most important thing is that you have fun and won’t burn yourself out working in a field you don’t enjoy.
Where I’m from there’s demand for Web Devs, Java devs, .NET devs, It Support, Network Engineers, Embedded systems, whatever.
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.
Because it was easier to use Java primitives than implement the constants myself.
MPS uses projectional editing. Which means for the user that everything you do is free from concrete syntax, and you basically edit a graphical representation of that abstract syntax tree directly, while it looks like you’re in a textual editor.
So I define abstract nodes that may have certain relationships with each other and then give them a representation in the editor (which is what you see in the screenshot). These nodes may also have generators assigned to them, which use map/reduce operations to generate whatever source code I desire. It usually includes its own bit of code, and triggers code generation of its children as well.
I hope that was somehow clear 😄
Great idea if I have to extend it
I like the way you think! 😂
Yes, it pretty much just wraps the expression in a “System.out.println();”
Fortunately I generate Java source code from it. However MPS generates both source and byte code when you build the solution. For some reason I can’t get the byte code to run though, but the source code does, so I don’t care too much.
Very cool, I’d be interested in your publications once you’re done. I like metaprogramming, but once you realise you might have needed it, you’re already knee deep in fresh legacy code.
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.
You’re correct, but it doesn’t really matter for demo purposes. In an actual use case (whatever that would be for this language) you would of course want to use some kind of variable or expression there instead of a constant.
It’s a tool for designing domain specific languages. Really interesting!
Correct!
Vibe check is pretty much the scope. Classes aren’t a thing (yet).
Well done, here’s your price: 🏅
You may redeem it for a star on a GitHub repo of your choice.
It all gets put into the main method though in this version 😄
Recently switched jobs from maintaining a 15 year old Windows Forms .NET Framework legacy codebase.
At the new job we stick to Clean Architecture, use unit and integration tests, have a code generation tool, actually make nice use of generics and use dependency injection. Also agile processes, automatic build tools, whatever. The difference is night and day and I’m so glad my ex boss fired me because I told him he’s an asshole and his codebase is shit.
I love how it’s first “Oh, we had some great findings.” and only second “And no one died.”.
Ha! I’m partially looking at this issue in my bachelor’s thesis.
It’s not at all necessary to embed a browser, but it’s really easy to transfer your web app to a “near native” experience with stuff like electron, ionic, cordova, react native or whatever other web stuff is out there. The issue is mostly that native APIs are complicated and relying on web views or just providing your own “browser” is a relatively easy approach.
Stuff like Flutter, Xamarin or .NET MAUI compile depending on the platform to native or are interpreted by a runtime. There’s a study I use that compares Flutter to React Native, native Java and Ionic on Android and finds that unsurprisingly the native implementation is best, but is closely followed by Flutter (with a few hiccups), with the remainder being significantly slower.
The thing is. I don’t think these compiled frameworks lag behind in any way. But when you have a dev team, that’s competent in web development, you won’t make them learn C#, Xaml, Dart or C++, just to get native API access - you’ll just let a framework handle that for you because it’s cheaper and easier.
Edit: To add some further reading. This paper and this one explore the different approaches out there and suggest which one might be “the best”. I don’t feel like they’re good papers, but there’s almost no other write up of cross-platform dev approaches out there.
Edit2: I also believe that the approach “we are web devs that want access to native APIs” may be turned around in the future, since Flutter and now also .NET offer ways to deploy cross-platforn apps as web apps. I’ll get back to writing the thesis now and stop editing.
I mean yeah, funny greentext, fake and gay and all, but is that an actual thing that happens across the big pond?
If someone did that in Europe they’d be in serious legal trouble if the threatened party sues.