Programista 11/2016 (54)
Programista 11/2016 (54)
Po roku od wydania pierwszej wersji systemu Windows 10 Microsoft udostępnił zaktualizowaną wersję tego systemu określaną mianem Anniversary Edition lub Anniversary Update. Wprowadza ona szereg dodatkowych funkcji użytkowych oraz możliwości programistycznych. Wydaje się, że jednym z najciekawszych aspektów developerskich jest uzupełnienie mechanizmu data binding o możliwość tworzenia wiązań z wykorzystaniem metod. To oraz kilka innych wybranych nowości opiszę w tym artykule.
Praca programisty jest pracą równie kreatywną jak architekta, malarza czy pisarza. W końcu to właśnie możliwość tworzenia czegoś nowego daje nam tyle frajdy podczas długich godzin spędzonych przed ekranem komputera. Nie ma więc co się dziwić, że gdy programista staje przed potrzebą napisania kawałka glue-code – kilkunastu lub kilkudziesięciu linijek, które ktoś po prostu musi mechanicznie wklepać – dostaje białej gorączki. Przez długi czas programiści Androida byli do tego zmuszeni i nie było zbyt wielu alternatyw. Na szczęście sytuacja ta zaczyna się zmieniać.
Technologia JIT (ang. Just-In-Time) od czasu wprowadzenia jej do maszyny wirtualnej Javy jest podstawowym elementem wielu środowisk programistycznych. Pierwszym przykładem jest wspomniana Java, ale także platforma .NET obecnie wydawana w odświeżonej wersji .NET Core. JIT to także podstawowy element środowiska Julia. Bez technologii JIT wiele obecnie stosowanych języków programowania oferowałaby znacznie niższą wydajność – i to pomimo ciągłego rozwoju technologii i wzrastającej wydajności procesorów.
Najnowsza pełna wersja Swift – oznaczona numerem 3 – pojawiła się 13 września 2016 r. na konferencji WWDC. Jest to pierwsza wersja wydana po otwarciu źródeł języka, która pracuje zarówno na Mac OS X, jak i na systemach Linux. Prawdopodobnie to dopuszczenie do głosu społeczności programistów zaowocowało wprowadzeniem niezliczonej liczby zmian w języku – jego modernizacją, usunięciem pewnych naleciałości z C czy Objective-C, a także ustandaryzowaniem składni i wytycznych projektowych.
Pracując na co dzień w C#, F# czy VB, często zapominamy, że pod spodem znajduje się dodatkowa warstwa pośrednia. CIL – Common Intermediate Language (lub po prostu IL – Intermediate Language) to pełnoprawny język, w którym – gdyby się uprzeć – można by pisać aplikacje na platformę .NET. Czy warto zatem poznawać, co kryje się poniżej naszego wysokopoziomowego kodu? Uważam, że tak. Zainteresowanych czytelników zapraszam do lektury.
W obecnych czasach cztery czy nawet osiem rdzeni w procesorze komputera osobistego nikogo nie zaskakuje. To, co jeszcze 10 lat temu zarezerwowane było prawie wyłącznie dla domeny procesorów serwerowych, dzisiaj znaleźć można w rozwiązaniach dedykowanych dla telefonów komórkowych. Jednakże czy ze wzrostem ilości rdzeni obserwujemy również wzrost wydajności aplikacji? Innymi słowy, czy trend wzrostu ilości rdzeni w procesorach jest odpowiednio wykorzystany przez programistów? Czy zastosowany algorytm współdzielenia danych może w znaczący sposób ograniczać skalowalność? W niniejszym artykule postaramy się odpowiedzieć na te pytania i jednocześnie pokazać, jak można poprawić swoje „kung-fu” programowania współbieżnego.
Big Data, kontenery, Internet rzeczy – nie brakuje dziś pojęć, których firmy muszą ekspresowo się uczyć. Najnowszym jest DevOps, czyli trend mogący poprawić wydajność działów IT.
Decyzja o tym, jakie oprogramowanie wykorzystamy w wybranym celu, często podejmowana jest na podstawie analizy czasu potrzebnego na jego wdrożenie oraz sumarycznej ilości funkcji, jakie ten system nam dostarczy. Prawdopodobne jest jednak to, że tam, gdzie priorytetem jest wygodna i czas, w pierwszej kolejności ucierpi bezpieczeństwo.
Hack.lu jest coroczną konferencją organizowaną w Luksemburgu. Również co roku odbywają się na niej zawody CTF, które organizuje zespół FluxFingers, związany z Uniwersytetem Ruhr w Bochum. Sam CTF jest znany ze względu na dobre przygotowanie i ciekawe zadania. W tym roku było ich 12 w standardowych kategoriach (Crypto, Programming, Reversing, Exploiting). Tematem tegorocznej edycji był Cthulhu.
Powszechnie wiadomo, że każdy programista powinien znać przynajmniej podstawy języka angielskiego. Wiedza ta przydaje się, gdy trzeba poszukać czegoś w dokumentacji, a także podczas szukania pracy. Niestety kursów angielskiego dla programistów jest bardzo mało, więc tym razem postanowiłem napisać o jednym z nich.