This was not a thing one year ago, but now it is really part of the conversation. In our company the goal is to reduce by two thirds our expenses in digital services by focusing on self hosting and European alternatives. Is it inconvenient? Mildly so, but for most things there are alternatives available once you start looking into them
HN user
ftomassetti
As of today I finished and published my book on migrating RPG code to modern languages: https://www.amazon.com/Migrating-RPG-Code-Modern-Languages-e...
So I will rest for a few days :D
Honestly designing a parser is easy: just start using ANTLR and perhaps add later an AST layer. However if you do not want to go that I suggest looking in projectional editing, for example JetBrains MPS or Freon by Jos Warmer
If you are the smartest person in the room and you do not like it, change room
Consider also that many companies promote job ads on LinkedIN or search candidates on LinkedIN. So even without the “submit your application” LinkedIN is pretty important to get hired, imho
True, indeed JetBrains MPS has its own git driver
I will make a point of discouraging using Repl.it .
Strumenta | Project Manager with Marketing skills | Italy (Remote) | Full time
We are a small company (6 persons) but we are punching above our weight. We have a significant worldwide reputation in our niche and we work with clients distributed across the USA, Europe, and Asia.
While we are registered in Italy, we very rarely have Italian clients. Our working language is English and we would need an English native speaker or someone very fluent in English. If you are not an English speaker, you have not lived for at least one year in an English speaking country, and you have not used English as a working language in the past, please do not apply.
Your role would be ensuring that the most critical things get done, using your judgment to ensure they get done efficiently and effectively. You would be essential in solidifying our good practices, improving them, and identifying how we can improve.
You will guide us specifically on delivery and marketing.
On delivery, you will be in charge of communication and coordination with clients, supervise how projects progress, and measure profitability.
Regarding marketing, you will manage the different activities to ensure we communicate what we are doing clearly and to the right target.
For details see here: https://it.indeed.com/offerta-lavoro/project-manager-d9fabce...
You may be interested in what the Dutch Tax & Custom Agency is doing: they built a DSL to express tax calculations. Here you can find the case study: https://resources.jetbrains.com/storage/products/mps/docs/MP...
Personally I work in the Language Engineering area and it seems obvious that you want tax lawyers and accountants to interpret the tax code and translate it into “code”. Is just that you also want “code” to be obvious for them and support by proper tooling, which catch all inconsistencies.
I would also love to interview the author of this and the work for mon-entreprise. While I understand French, I also have these interviews in English to reach more people
We have several articles comparing tens of other tools. That said of all the tools we worked with, ANTLR was the one we were most efficient with. It is true, there is a learning curve, but in our experience learning it was a great investment. I can understand other could have different preferences
you can contact me at federico -> tomassetti.me
..wow, this is a bit strong. I would encourage you to be more respectful of persons who work in this very specific field and share their ideas. There are always persons behind some work you insult so easily.
You know, there are over 2M persons who read our articles. A few hundred also bought a book or a video-course from us, but the vast majority just got some information from free, and we like it in this way. I do not think we got so many persons interested in what we do by lying.
If you have a different professional experience I would happy to learn from it.
I think that hand-rolled parsers are good if: 1) You have a team that knows well what they are doing 2) You have a lot of resources 3) Your language is stable
I would argue that parser-generators are what made those projects to be started and prosper in the first place. Then once one is successful a custom solution could make sense but in my experience it is more expensive and potentially less maintanable, unless you know very welll your way around parsers and language tooling
I am sorry we had this impression. Sure, we use ANTLR a lot, for commercial and open-source projects, and we had to work with parsers written in (flex), yacc, and bison, so we shared our experiences as people who work all day long with parsers. We offer a lot of free resources on ANTLR and we have not specific interest in advertising ANTLR. For us it is a tool we use and love, just that
Rewriting perhaps not, but being able to fix the ebnf-flavor used to make it more powerful it is a great thing. If you have to stay 100% compatible with all the mistakes accumulated in 30 years you are tied
I am a bit surprised by this, as I had the opposite experience. I find ANTLR grammars much more maintanable than the hand-written parsers I encountered. Indeed I was asked to port hand-written parsers to ANTLR for maintanability. Also, ANTLR4 seems to me to produce grammars which are clearer than ANTLR3.
The weak point is error recovering, in my opinion. While ANTLR offers a sort-of-decent error recovery strategy for free, one has to customize it if they want to get great error messages.
I think that many maintainability issues are due to poor usage of ANTLR. What we do is to: 1) Limit semantic actions 2) For complex languages do tree-transformations, after parsing
With this approach we got pretty decent results.
Personally I find hand-rolled parsers too costly to build and harder to maintain, but I have limited experience with them. I guess it also depends on the context: if you are designing a DSL while writing the parser you want to be able to evolve it very quickly and in that context I think that a parser generator is very useful. If instead I would need to build an industrial grade parser for a general purpose language, having a large budget, then I would go for an hand-rolled parser
In my professional experience I build parsers, like at least 10 per year and 99% are written using ANTLR. I did not find a language that I was not able to parse with it, so far.
I think it does make sense to write manually parsers for performance and error messages, but it should be clear that this means raising cost by ~10 times. It is worth the effort if you are building a compiler for Java, for example, probably not if you want to process some DSL you developed.
Disclaimer: I am the brother of the author of this article
ClearBox AI | Torino, Italy | Data Scientist XAI | ONSITE
We are a startup focusing on making Human Centric AI. It involves making AI explainable, understandable, and manageable by normal human beings.
You can find out more at https://clearbox.ai or you can write to me at fede -> clearbox.ai
https://it.indeed.com/offerta-lavoro?t=data+scientist+xai&jk...
We use decision tables in Domain Specific Languages that we develop for several sectors. In this paper you can see how we use them in the medical sectors to represent some medical decisions http://voelter.de/data/pub/MPS-in-Safety-1.0.pdf (see the Appendix for screenshots)
In my experience ANTLR is a good tool to cover most of usage, so I would not say it is used "occasionally", for me it is the first choice
I wrote an article on everything you need to create your own lanague, hope it helps https://tomassetti.me/resources-create-programming-languages...
If you ever go that route and you plan or using/creating some open-source components I would be very interested on hearing more (I am a JavaParser/JavaSymbolSolver contributor)
Right, but the list had to be limited in scope, and I focused more on longer pieces of content
I had a similar thought when using Clojure or Python: as the project matured I wished I could switch to some static typed language. I am very interested in language conversions, so I should give this a thought...
This sounds awesome! Another good thing to add to the list
Maybe you could use some information theory to calculate the entropy of your language and evaluate when it makes sense to introduce new concepts. I played with this idea but I have never used it in practice for designing languages.
Nice, I will consider adding it to the list
I also loved that book! It is in my list of best books on building DSLs (https://tomassetti.me/domain-specific-languages#books)
That is also a good reason not to, but unfortunately that escape to most people
Thanks! Yes, it is a big pro the fact it supports so many languages, until you need to write semantic predicates at least