Learning A New Programming Language per Year in the Age of AIPeople don’t really learn new programming languages every year anymore thanks to AI, so why do I stick with this activity? Call me old fashioned, but I still like to dive into a new programming language every year, no matter what, and thus here comes yet another update in my lifelong obsession to learn more and more programming languages.
Translating the Formula for Primes to Rust With AIAfter creating the C++ version of C. P. Willans’ formula for primes last week, I asked myself what other language is usually pitted as the fastest ever? And the answer, of course, is Rust.
Translating the Formula for Primes to C++ with AISome of you might remember an article I published more or less a year ago, called “Mathematical Curiosities”. In that article I showed an indeed curious formula: the 1964 “Formula for Primes” by C. P. Willans.
Yup, Still Learning a New Programming Language Every YearI gave an update on this lifetime activity of mine in 2006, 2007, 2011, and 2013, and here we go for 2023.
Containers and DLL HellBack in the 1990s, shared libraries were all the rage. Instead of having to ship a 20 MB *.exe file to your customer in various floppy disks, you could cut some code out, put it in a set of *.dll files, and reuse that code across all your products. Every vendor would then install lots of DLL files in your system, and they would be reused by other apps from the same vendor.
Killer AppsThe D programming language lacked a “killer app” to break through. Another brilliant language suffered from this situation, objectively deserving a much better fate than the one it had; Smalltalk.
Fortune AppsAs part of my work in VSHN, I lately prepared a set of demo applications ready to be containerized and deployed in our new product APPUiO Cloud.
Polyglot ConwayMy personal project during the pandemic was Conway, a project providing implementations of Conway’s Game of Life in as many programming languages as possible.
Enseñando C++Una vez se me ocurrió enseñarle C++ a un amigo. Un error garrafal, pero bueno, fundamentalmente, lo que le dije fue esto.
The Developer Guide to Migrate Across GalaxiesThis is the presentation I gave at the second App Builders Conference in Lausanne, Switzerland, April 25th, 2017.
Still Learning One Language per YearQuick update about my “one language per year” lifelong initiative:
Learning One New Language Every YearHere’s an update of the current status of my “one language per year” lifelong initiative:
Smart Pointers in Objective-C++One of the coolest features of C++ are templates, of which I’ve been drooling in the past. One of the most useful things that templates have brought to C++ are smart pointers, which simplify memory management tremendously; they combine the capacity of C++ to instantiate objects in the stack, the flexibility of heap allocation, and template classes, all in one thing.
How knowing C and C++ can help you write better iPhone apps, part 1While learning how to write iOS applications, you will often encounter the phrase “learn C first”. Writers of Cocoa applications apparently benefit from knowing about C (sometimes even C++), but it is not very clear to many new developers how this actually works.
ImageMagickImageMagick is a cool toolkit; not only it's a complete set of command-line applications, ported to Windows, Mac and Linux, supporting hundreds of different image formats, it's also a C++ library that you can use in your own applications!
Code Coverage Using gcovI’ve just uploaded a code coverage test project, using the gcov GNU tool. The idea was to create a small application (simulating an ATM), and injecting into the CppUnit unit tests executable code coverage information, using the gcov utility. And the results just speak by themselves:
Reducing Code EntropyThis is a rant: I am tired of seeing virtual methods implemented in child classes that, at some point or another, call the method of the same name in the base class. For me this is a sign of poor architecture. A bad, bad smell in code.
Preferred Programming LanguagesThere are basically 5 languages that I really like. For several reasons. 2 of them are proprietary, while 3 are open-source. 2 are statically typed, and 3 are dynamically typed. All are fully object-oriented. 3 can be used for web development, 4 for desktop apps. And none is Java.
Two New ProjectsI’ve just published two more recent wxWidgets projects, always testing new features! These projects should compile without problems with Xcode and Visual Studio.NET 2003 (as always, with wxWidgets, CppUnit and Doxygen).
BirthdayCard ProjectI have just created a project page for the BirthdayCard Project. This was an experimental project for me, to test the combination of several open-source and proprietary technologies such as
The Power of Open SourceI’m just giving the finishing touches to my wxWidgets + SQLite + CppUnit personal project, all written in standard C++, and compiling in Mac, Windows and Linux as well. And I had the opportunity to see how good is to be able to change the source code of a library when you need it.
Calculator ProjectI have just posted a page in the site, about a recent project I’ve done, implementing a simple stack-based calculator, similar to those HP ones: it is called Calculator, and you can find it under the Project pages.
About Cross Platform Unit TestingA lot has been said about unit testing à la JUnit in C++; the most interesting article about the subject is without any doubt Exploring the C++ Unit Testing Framework Jungle, By Noel Llopis, with a thorough comparison of the most important C++ unit testing frameworks out there:
Avoiding Basic TroubleI remember that, late 2004, I was asked by my employer to evaluate the migration of a huge (huge, did I say huge?) Visual Basic 6 “classic” client-server application to an SOA-based Visual Basic .NET one. The application was a business-critical one for several customers, kind of a government ERP system, built initially in VB 3 or 4, and slowly migrated through the years to new versions of VB. Until VB.NET came out.
A New Programming Language Every YearSomewhere I read that it was a good thing to learn at least one new programming language every year; I think I have kept up that trend since 1992:
About code and eggs - excuse me?The purpose of this article is to show that the current trends in software development owe a lot to ancient mindsets, and that some good old Object-Oriented Programming (OOP) programming constructs are no longer accepted in modern business development scenarios. It serves also as an introduction to Service-Oriented Architectures (SOA), putting it into context of what has been done in the past, and what can be done in the future with it.