Since 2014 Swift programming language has gotten the fascination of developers and strangers, but what about the old and reliable Objective-C, that for years has been the default language in iOS and OSX applications. Is Objective-C dead? Do the new generations should only know Swift? Is Swift the tool for everything? In this article, I will try to answer those questions, by comparing them in different categories. > In this article I am not considering backend development with Swift
One of my hobbies is taking pictures, although I am still learning, with my computer science background I know, that If I want to post process my images I need the RAW files. Why because compression algorithms used today sucks! And no matter how good your camera is, the algorithm will do the same to your images. JPEG is NOT Film JPEG as any other digital format, it will always be digital: a sample of a real world signal(consider pictures as 2D signals).
It is well known in all programming languages the floating point math loses some accuracy. Therefore we have something like the following statement 0.1 + 0.2 != 0.3 This is explained in detail in here, but basically, is because some fractional numbers aren’t well represented on binary, and the carryover loses accuracy, but it keeps precise. There are several ways to mitigate this effect, the most known use double numbers or big decimal representations, the problem with those is the operations tend to use more computing resources, especially with BigNumbers, that usually are objects with large strings and complicated math behind.
It has been taught “divide and conquer” is a great technique to solve any problem. Well, sometimes in practice it is harder than we, though, here is a case study of how our team apply this concept and still wasn’t enough, we need to divide even more and tweak some other things. The problem In the beginning, a the developer in charge to create an algorithm for the mean value for some data points did not have in mind the massive data and the required memory to process that piece of code in the future.
These days there is the a trend of experienced developers leaving X programming language to move to Y, but why is this happening? Is X awful? Is Y the future? The answers is simple, personal preferences. Here in this article, I try to expose some of the wrong reasons you shouldn’t consider moving to another programming language where most of your current experience and knowledge is useless, and you will start almost from zero.
The dream from almost all computer nerd is to make his own video game, unfortunately this goal is harder than we though. It turns that is not only required a computer science knowledge, but an additional amount of skills, from complex math to 3d modeling and game design. When I finished college, I realized that if I wanted to build a video game I will need to work with a big team to build a good one, or at least have some artistic gifts(which I don’t have).
As a ruby developer I like how easy and convenient is to have an asset pipeline, specially when your frontend gets larger or complex. Serve fewer and smaller files is a good practice on web development, however the best tool(that I know) for asset pipeline is sprockets, and is really hard to build from scratch an asset pipeline handler with compression and minification. Instead of reinvent the wheel, lets use it.
When in doubt test it! Sometimes in the development process you might find yourself with the need to know if a component is performing better or worse, there are couple ways to get that information, one is through run benchmarks and you could do it from server side handling it as another test within your suite, or you can test the response times on your app with some external tools to get a better profile.