fbpx
Tag

engineering

December 7, 2018

Basic things we Google

I use Google a lot in my job. Not only to search things I don't know, but also things I should know very well. For a long time, I didn't feel good about it. Until, I read this stream of confessions from skilled senior developers on the Twitter. As a developer interested in graphics, I should know that using references isn't bad. Graphics use references all the time and they don't feel bad about it. In fact, it is advised to use them. The final result is what matters. In a same way, you aren't a bad coder if you don't know bubble sort from head. Or if you need to search syntax of switch statement every single time. Unless, of course, you don't know anything and you paste things from Stack Overflow mindlessly.

So I decided to ask my colleagues which basic things they have to Google when writing a code.

Luděk: As for myself, I had to recently look for enum definition in Java because of missing semicolon I wasn't able to track down. I'm also not very confident when writing for loop from memory because I'm overusing NetBeans auto-completion way too much. System.out.println() is in my head forever saved as sys, CTRL+B, Enter. God bless the auto-completion.

Tomáš: Despite having 7 years of experience as a dedicated DB developer, I have to Google the syntax for CREATE TABLE command almost every time. Please don’t tell my boss.

Juraj: I’m still waiting for the day, when I will be able to use basic UNIX commands like grep, or find, or God forbid, curl with parameters correctly on the first try (relevant XKCD - https://xkcd.com/1168/).

Tibor: When de/compressing .tar.gz files, I always have to google the correct parameters.

Vojta: I'm pretty sure I'll never be able to use C getopt function correctly without copy-pasting it from an obscure online tutorial. Actually, this goes even for the most simple C Makefile… ¯\_(ツ)_/¯


Our team
OUR SCRUM MASTER

October 16, 2018

Is software getting worse?

My question targets not only desktop software but also mobile apps, web applications and websites. Seems like software is getting worse and it won't be better. And I just have to start my rumble with the worst - mobile apps.

A very good example is Tinder. This thing needs almost 25 seconds to load and takes 50MB of space. The usability of profile page is very bad (oh, you don't need to sort your photos), application sometimes don't want to load profile pictures and transitions between pages are lagy even when the application is fully loaded in the memory. And we are talking about something, what is basically a chat (not even a good one).

You would imagine that with such high earnings, company would be able to easily craft better user experience and improve the performance. But why, when new phones with better hardware are released constantly? We are getting better hardware, but sadly the user experience is still same because the software is getting slower. After few Android updates, I can install only few applications because the internal storage can barely fit updated OS. Even though my phone is far superior than fist version of Samsung Galaxy S, the loading times are somehow slower.

Desktop software isn't better. When I tried to install Visual Studio last time, it took forever to download and install several gigabytes of data. The size of whole package can be for sure explained, but it still surprises me how can a software package take so much space. We aren't talking here about computer game, where executable is several times smaller than resources like textures, sounds, music and 3D models. It also contrasts against exceptions, which often comes from open source territory. These exceptions can offer minimal footprint and rich features packed in single executable file. Visual Studio also install several gigabytes of itself on system drive, even though you selected different hard drive. Not nice, when your system drive is SSD with limited space.

Another concerning trend is rising usage of web technologies in desktop applications. When I saw an Atom text editor for the first time, I was excited to try lightweight alternative to bloated (don't mean it in a bad way) IDEs for coding. The editor is indeed faster comparing to full fledged IDE, but it's hardly lightweight and smooth user experience. When you compare it against C++ based Sublime Text, the difference is noticeable. I'm scared of the day when web technologies will take over the desktop environment. We are slowly getting there. Sooner or later, we will start seeing advertisements in the software we daily use. Heck, Windows 10 is already doing it.

Someone can see a poor performance as a non-issue. You could even say that most desktop apps are pretty fast. But let's take a look at video games. They have to do a lot of things in one second - handle tens or thousands of entities, solve physics, process the AI, calculate object occlusions, do the path finding and many other tasks. All of that not only under one second, but most of the time under 16 milliseconds. If we use this as a standard, performance of almost any application is unacceptable.

And websites? This is where we lost battle already. We are wasting so much resources, time and bandwidth by downloading all those interactive video advertisements and animated banners. Maybe we are used to it but just visit a dev.to and imagine each website has same response times. We dreamed about faster websites when internet was a new thing. We still have same dreams now, when fast internet connection is relatively available.

As you can probably imagine, I'm not very happy with the current state of software, but there are always exceptions. I'm using several development tools with acceptable performance and some of them are even developed for free. That means creating fast and responsive software is achievable under any condition. It's all in our hands.


Our team
OUR SCRUM MASTER