From Eclipse to VS Code: First impressions

I have been developing using the Eclipse IDE basically since college. In those days, being able to use a complex IDE was seen as the mark of the professional developer. Freshmen coded using a simple editor and the compiler directly from the console, geeks used an editor like Vim and some build tool to automate the build process, but to code “like a professional”, you used the mighty IDE.

In one of my latest classes, there was a even a teaching assistant that insisted that we use an IDE for one of the big projects in the last year of Computer Science. We were required to learn to use it well, this is, learning the shortcuts and going beyond just using it as very heavyweight editor. This was very useful later for my professional career, indeed, using the tools of the trade and going beyond just “programming” meant that you were ready to enter the workforce.

Continue Reading

What do we mean by software for engineers?

In this post I’m presenting a very broad overview of what I consider to be tooling for engineers, which is the main subject of this blog. Software for engineers has many names, some people call them modelers, others, IDE, and others just “tools”. In this blog post we will stick with the generic label “software for engineers”.

In the grand scheme of things, software for engineers requires mostly the same principles of design that other software. As most business software, software for engineers uses a layered architecture. The main difference is that, for standard business software the three standard layers: presentation, business logic, and back-end contain some common and standard components, while software for engineers uses another set of components.

Continue Reading

The rise of the super editor

When I first learned to program in the late 90s, it was with JavaScript. I was 16 years old, and I did not understand the underpinnings of programming and the tooling that is behind. I remember searching Yahoo and Altavista for explanations on what is a compiler and how does it work. In the end, I ended up learning JavaScript, because you only needed an editor (the good old Notepad did the job) and a browser.

Continue Reading

My first post

Hello, I’m Edmundo López. I help companies to improve the productivity of their domain experts by creating custom tools that let them go from the problem to a solution faster and more reliably.

In this blog, I will share my thoughts about the different tools, methodologies and techniques to:

  • design custom tooling for your domain experts
  • decide whether you need to implement custom tooling
  • choose the right stack to implement your custom tooling

Please contact me if you have questions or need some clarification on the content I will be sharing.

Continue Reading

ADTs in Scala for Object Oriented Programmers

One of the many aspects that you need to learn when starting with functional programming is ADTs. But what are they and why do we care so much for them in FP?

ADT stands for Algebraic Data Types. They allow the definition of complex data types. If you come from object-oriented programming, the closest equivalent are classes, and in Scala they look almost the same.

Defining ADTs

Let’s start with the basics: the definition. We define an ADT by declaring its name and its variants. Variants might be parametrized . Let us consider a basic ADT where the variants don’t have parameters.

Continue Reading