Jakich technologii używamy w MIPSO?

                  

Bezawaryjne i funkcjonalne oprogramowanie wymaga używania sprawdzonych narzędzi, które są w stanie pokryć potrzeby naszych klientów. W MIPSO wykorzystujemy różne technologie umożliwiające nam szybkie wdrażanie rozwiązań. Są to języki programowania, jak i biblioteki i frameworki, usprawniające prace w różnych domenach biznesowych.

W tym wpisie zajmiemy się opisem doboru języków w różnych projektach.

 Język C

Jest on fundamentem współczesnej infrastruktury informatycznej. Pojawił się w 1972, dzięki niemu powstał system operacyjny Unix. Udoskonalany jest po dziś dzień, czego efektem jest popularny standard C11. Język C jest językiem niskiego poziomu – to znaczy, że bardzo często pojedyncze komendy odpowiadają poszczególnym operacjom procesora. Pozwala to na optymalizację kodu, dzięki czemu C nadaje się głównie do programowania systemów operacyjnych czy prostych i średnio-złożonych zastosowań embedded.

W MIPSO wykorzystujemy ten język do programowania mikrokontrolerów w naszych projektach hardware. Niektóre z nich posiadają ograniczone zasoby, przez co C jest idealnym wyborem ze względu na szerokie pole do optymalizacji. Język to język proceduralny – jego struktura opiera się o podprogramy, które sekwencyjnie wykonują swoje operacje.

Język C++

Jest on pochodną oraz duchowym następcą języka C. Pojawił się około 1983 roku. Język C++, względem C, dodaje kilka paradygmatów (czyli sposobów programowania), m.in.:

  • paradygmat obiektowy – budowanie struktury w oparciu o klasy i obiekty, będące odwzorowaniem rozwiązywanych problemów;
  • paradygmat funkcyjny – budowanie struktury w oparciu o składnię przypominającą wyrażenia matematyczne;
  • programowanie generyczne – budowanie struktury w oparciu o zgrubne definicje elementów w programie, które potem są dostosowane do danych potrzeb.

Język C++ jest naszym pierwszym wyborem, jeżeli chodzi o rozbudowane aplikacje embedded. Strata wydajności w stosunku do C jest minimalna, a czasami wcale nie występuje – jednocześnie ergonomia samego języka pozwala na szybsze rozwijanie aplikacji. Nowoczesne elementy, wprowadzone między innymi w standardach C++11 i C++14, pozwalają na tworzenie aplikacji, które są szybkie, ale także dobrze zabezpieczone przed błędami takimi jak wycieki pamięci.

Czasami w tym języku budujemy także aplikacje okienkowe – szczególnie takie, które powinny być możliwe do przeniesienia między różnymi platformami.

Język C#

Język C#, podobnie jak C++, jest pochodną języka C. Służy on jednak do wykonywania innych zadań, zaś jego zasada działania jest o wiele bardziej skomplikowana. Za jego stworzenie odpowiedzialna jest firma Microsoft, która uczyniła z niego cały ekosystem wspierający różne rozwiązania. Jednym z głównych zastosowań języka C# jest tworzenie wydajnych i skalowalnych backendów webowych czy aplikacji desktopowo-mobilnych przenośnych między różnymi platformami (jak PC, tablety czy smartfony).

W MIPSO wykorzystujemy C# do tego drugiego zastosowania – przygotowujemy aplikacje okienkowe, które potem z powodzeniem mogą być używane w przemyśle do sterowania maszynami.

Język Python

Python jest najbardziej ergonomicznym dla programistów narzędziem na tej liście. Jest to język interpretowany – jego instrukcje nie są tłumaczone bezpośrednio przez procesor, ale wykonywane przez specjalny program nazwany interpreterem. Python jest wykorzystywany do tworzenia rozwiązań webowych czy przetwarzania dużej ilości danych (np. w Big Data).

W MIPSO korzystamy z tego języka do tworzenia prostych symulacji czy analizy danych, które potem pozwalają nam na szybsze i lepsze wdrażanie tworzonego przez nas oprogramowania. Python posiada bogaty ekosystem, który idealnie nadaje się do takich zastosowań – dzięki bibliotekom takim jak np. SciPy czy NumPy.

Język Go

Język Go jest nowoczesnym językiem, stworzonym przez inżynierów z firmy Google. Łączy on dobre strony starych, sprawdzonych rozwiązań, takich jak C i C++, oraz tych nowoczesnych, kładących nacisk na ergonomię programowania. Język Go jest bardzo prosty – w porównaniu do wielu innych języków jego składnia jest nieskomplikowana. Posiada różne elementy, które upraszczają proces programowania, ale mimo to jest wysoce wydajny.

Stosowany jest do budowania skalowalnych backendów. Takie też jest jego zadanie w firmie MIPSO. 

Język Dart

Dart jest kolejnym językiem stworzonym przez Google. Jest silnie inspirowany JavaScriptem, a także jest kompilowalny (istnieje popularny program, który tłumaczy kod Dart do kodu do języka JavaScript). Znalazł zastosowanie głównie w wieloplatformowych aplikacjach mobilnych opartych o technologię Flutter.

W MIPSO planujemy jego wykorzystanie do stworzenia aplikacji mobilnych, integrujących się z naszymi backendami i urządzeniami IoT.