4 ms·
The argument is still kind of the same. What benefits does this have (aside from developer preference) over using flat out C/C++? What is the performance like u
by jonny383 7y ago
The argument is still kind of the same. What benefits does this have (aside from developer preference) over using flat out C/C++? What is the performance like using the DSL in Haskell?
- tartoran 7y agoNot the OP but I suspect we’re not talking about any performance gains here, the arduino is still running binary. What you get by using a functional language like haskell is a way to structure your code differently and in many cases that could make your life a whole lot easier when you translate the solution that you have in your head to code. It is also easier to catch bugs
- np_tedious 7y agoIs developer preference not important? What advantages does C have over processor specific assembly?
- random314 7y agoDeveloper preference is a very big deal. Almost all other factors are secondary.
- pkolaczk 7y agoIf a developer wants to use a hammer for everything, because everything looks like nails to him, then I doubt in his professionalism. Sure, dev preferences matter, but only within the space dictated by the client requirements. Customers do not care if the thing they are using was created with C or Haskell. They care about price, performance and features. It might be harder to program in C++, but the final result can better fulfill the requirements.
- random314 7y agoDevs prefer one language over the other, because they consider it to be better for their use case - it is not because of religious reasons. Clients typically don't have the technical expertise to dictate what technology the dev should use. If the client knows what technology they need, they should simply look for those devs who have expertise in that technology. Half the languages that you see succeed today(the other half are those pushed by megacorps as the only developer platform), are because of dev preferences - not because of client requirements.
- pkolaczk 7y agoYet they often choose wrong tool for the job. We often see games written in Java, big websites created in PHP, or processing huge amounts of data in Python. Here someone wants to do embedded in Haskell. These are not technical reasons. The reasons for these choices are frequently "this is the only tech stack I know" or "this is easier to learn".
- random314 7y agoFacebook has been written in php, and minecraft in Java - because that was the language that the developer preferred. Are you saying this was wrong? Both developers made billions of dollars from it. If a client needs a particular technology then he should look for specialists in those technologies. Otherwise, just leave it to the developers preference. And reasons such as 'this is the only tech stack I know' or 'this is easier to learn' are perfectly good reasons. Reasons for a lot of things are not technical. You think Mark Zuckerberg created Facebook for technical reasons? In fact familiarity with a tech stack and simplicity of learning are seen as key technical considerations when choosing a technology for development. You must be very immature to think these are not technical reasons.
- pkolaczk 7y agoThey both made billions DESPITE their technology choice, and both systems had to undergo a serious rewrite later. There are dozens of other projects out there almost noone ever hears of because they turn out to be a disaster and are cancelled (I was consulting a few such cases which ended up in court, because developers were not able to deliver the product with the required level of capabilities and performance, despite using their preferred, but seriously suboptimal technology). Or they are even a business success but then their users are constantly cursing while using them. Users are often not the same people who buy software, so sometimes you can make business success despite technical inferiority of the product. Marketing often beats technical features. > You must be very immature to think these are not technical reasons Sorry, but this ends the discussion for me. I thought we were discussing on merits, not ad hominem arguments.
- WJW 7y agoThe advantage of CoPilot (the DSL this library is built upon) is that it builds verifiable constant-time constant-memory programs, which is quite important in some cases (like aerospace control programs). Whether that is an important property for Arduino is debatable of course.