Compiled language vs Scripting language Compiled code is faster than scripts with order of magnitude. Even after using a Just-in-time (JIT) compiler for PHP 7.4 and PHP 8 , PHP still slower than Go. Go is a clear winner. Concurrency Go has concurrency as a built-in first class citizen. But PHP is good old language with no concurrency or parallelism in mind. The parallelism is achieved by executing scripts as a different process.
Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. A Simple Language Focus on debugging your application rather than debugging your programming language knowledge. No hidden control flow. No hidden memory allocations. No preprocessor, no macros. Comptime A fresh approach to metaprogramming based on compile-time code execution and lazy evaluation. Call any function at compile-time. Manipulate types as values without runtime overhead.
originally published on medium.com. I published it here because medium is blocked in some countries. An old school guy like me love statically typed language, even I tasted the convenience of dynamic typed languages for handling data with complex structure like JSON or operating data with SQL/NoSQL. The statically typed language avoids many ambiguous issues and let us figure out the mistake before before unit test reports it. So I love Go in many pieces, it leverages many concepts from other languages, has a easy understanding struct types, great tool set for production…etc, and most importantly, it’s easy to write and performance will not let you down, but I also got confused sometimes and found many ambiguous parts in Go.
These aren’t unique to “C programming”. These are various “control characters”, originally used to control the write-head and paper feeder on Teletype machines. \n is “line feed”. This would bump up the paper one line, whatever that was, but not move the write head. If you did abc\ndef, the teletype would print abc def \r is “carriage return”. This would cause the write head to return to its leftmost position.
Go, or also called Golang, is absolutely trendy, and rightly so. It is not as difficult to learn as C or C++, but still quite fast, and has a great community & many interesting and helpful packages and libraries. The language was also developed by some of the brightest minds in the computer science world at Google. These are probably enough reasons to look at the language in which Docker and Kubernetes were written.
For the past few years, the programming language Go (golang) is growing in popularity. I was a big fan of Python and I primarily used Python in my hobby projects three years ago. Now, I use Go instead of Python because I can be productive with Go from small-scale hobby projects to very large-scale projects in a large company. In the same period, Python is also growing in popularity as machine learning and data science became important.
Because there was an interesting discussion at reddit, suggesting using SSE, gRPC, Message queues (and there are plenty of others), I thought about making an article on (comparing) those communication protocols. But in the end, I decided otherwise. I see all those protocols as something that is adding more code to your project. I mean, you have to import something. You have to use an additional library. And I wanted something, that have less code below.
This article was written with one idea in mind: to show you, how to make a communication between two Go programs, using WebSockets. The simplest possible way. When using WebSockets, one program has to act as a server. But there can be numerous other programs as clients. In this article we will create one server and one client. WebSocket Server The code for server is pretty simple. And because we don’t want to reinvent the wheel, we will use gobwas module.
This article was created especially for my son, who had hard times understanding using pointers and interfaces. To make the explanation complete, I added (with his help) two things: functions and methods. I see those two as a complement to pointers and/or interfaces. Or vice versa. This explanation is divided into six parts, each part adding onto previous part. I tried to make it all as simple as possible. The basics We will start with something very simple.
This article is written with 20+ years spent in development, 10+ years actively writing in Java, 7+ years actively writing in C# and 3+ years actively writing in Go. This article is a personal opinion. This article advocates you, to try and use Go language. Speed of development When I am about to write a piece of software nowadays (and I can surely write it in all three languages), I will always choose Go.