I'm doing an essay on this for college and I can't really find sources. So far I've found these: https://www.quora.com/Which-is-the-best-programming-language-for-embedded-system http://www.eetimes.com/author.asp?doc_id=1323907 Why does C dominate in the embedded software market? I'm meant to evaluate the suitability of event driven programming in non graphical applications. All I know is that event driven languages are bad for this because they are heavier, slower and the GUI portion of them is wasted. I want to be able to explain how other languages, such as C and JavaScript, don't have these problems and also what other features makes them better suited to embedded systems. Edit: So it turns out that all of what I know is wrong. I would like to know what makes VB.NET bad at programming embedded systems (if it is bad), and what kind of criteria there is for a language to be good at programming embedded systems.
I've read through that and it didn't quite cover what I wanted, however I did find a few interesting points. Should have added that as a source mb.
Commented Mar 20, 2017 at 16:11You can create event-driven code in any language. You can even look at nginix as being "event-driven", though it's pure C. But neither Node nor Erlang likely fit an embedded controller well.
Commented Mar 20, 2017 at 16:19Please give an example of an "event driven language". "Event driven" is first and foremost a design style, a common abstraction, which doesn't require a specific language to do.
Commented Mar 20, 2017 at 16:36Note that regardless of the language used, quite a bit of embedded programming is typically "event driven". Quite a bit of what happens in many embedded systems is in response to interrupts provided by the hardware.
Commented Mar 20, 2017 at 17:09I was waiting for you to give an example of an "event driven language" to see whether I understand what you're asking. But I decided that you probably have some misconceptions. This first sentence of your question makes sense, "I'm meant to evaluate the suitability of event driven programming in non graphical applications." But then everything you wrote after "All I know. " is confusing and probably wrong.
Event driven programming is a design style. I don't know what you mean by event driven language and I'm skeptical whether that's a thing.
Event driven programming is very suitable for embedded systems because many embedded systems are event driven by nature. An event can be a button push, sensor detection, received network packet, timer expiration, etc. Think of an elevator, printer, or wireless router.
Miro Samek explains this well in the first couple pages of the Introduction chapter of Practical UML Statecharts in C/C++, which is subtitled "Event-Driven Programming for Embedded Systems". (You can read the Introduction from the Amazon listing if you click on the "Look Inside" link.)
Event driven programming is commonly used for GUI applications because it's very easy to do so with tools such as Microsoft Visual Studio. Every beginning desktop application developer starts with event driven programming and has access to a multitude of examples.
Conversely, a beginning embedded systems developer typically writes a main super-loop to blink an LED. Embedded development tools don't provide the event driven framework like Visual Studio does. And examples of event driven programs are uncommon. That might explain why event driven programming is less common in embedded systems. But it would be wrong to say that event driven programming is not suitable for embedded systems.
Edit: You've changed the question. I don't understand why you originally wrote "event driven" when you were asking about VB.NET.
VB.NET is not suitable for typical embedded systems but I don't believe any of the reasons are related to the concept of "event driven". Here are a few ideas you can research further. Programs written in .NET languages run on computers where the .NET framework (CLR and FCL) has been installed. The .NET framework does not exist for smallish microcontrollers used for many embedded systems. Embedded systems often have limited resources in terms of memory and CPU power. The .NET framework and .NET programs are too resource hungry for these resource limited systems. Embedded systems often have real-time requirements. .NET features such as garbage collection make it non-deterministic or difficult to ensure that timeliness deadlines can always be met.