Programozás kategória bejegyzései

10 legjobb programozási nyelv 2023-ban

Ma már olyan sok számítógépes programozási nyelv létezik, hogy felsorolni is hosszú lenne. Van közöttük általános célú, vagy kifejezetten az adott helyzetre, architektúrára szánt nyelv is. Ezek népszerűsége is folyamatosan változik, ahogy az is, épp melyik nyelvet lenne érdmes megtanulni első, de akár sokadik nyelvként. A mi listáng az alábbi lett.

1. Python

A Python magas szintű, többcélú programozási nyelv, de a legnagyobb előnye, hogy könnyen tanulható szintaxisa kitűnő választás első nyelvnek.

2. C#

A C# teljesen objektumorientált, jól strukturált programozási nyelv, kitűnő stabilitással és a .NET eszközkönyvtár teljes hátszelével. Első nyelvnek esetleg nehéznek tűnhet, de előremutató, egyértelműen definiált osztály struktúrájával és kiemelkedő stabilitásával mégis racionális választás lehet.

3. C++

Az egyik legsokoldalúbb programozási nyelv fordítóprogramja megtalálható gyakorlatilag a világ összes számítógépére és platformjára. Nagy teljesítménye és gyorsasága miatt számos szoftver, rendszerkomponens, grafikus szoftver, böngészőprogram és videojáték programozási nyelve.

Programozási nyelvek

 

4. JavaScript

Népszerű nyelv a webes front-end fejlesztésben, a HTML és a CSS mellett. A webes kliensoldali szriptek 97,8%-a JavaScript.

5. PHP

Még mindig a legnépszerűbb webes back-end nyelv a weboldalak 78,1%-át szolgálja ki.

6. Swift

A Swift az egyik legmodernebb nyelv, az Objective-C alternatívájaként dobta piacra az Apple, így a cupertinoiak termékeinek fő programozási nyelve.

7. Java

Az Oracle által fejlesztett Java magas szintú, többcélú nyelv, mely kezdők számára egyszerű szintaxisával lehet vonzó.

8. Go

A Go, vagy Golang online, desktop és API-alapú alkalmazások programozására lett kifejlesztve. Az egyik leggyorsabban növekvő nyelvek egyike, különösen a fiatalabb generációk között népszerű.

9. SQL

Bár nem klasszikus programozási nyelv, de a legnépszerűbb adattudomány és a statisztikaszámítás köreiben. A strukturált lekérdező nyelv az adatbáziskezelés terén jöhet jól bárkinek.

10. Ruby

Egy másik open-source nyelv, adat analízis és webes programozás során vehetjük hasznát.

C# verzió inkrementálás .NET Core 2-től

A régebbi, főleg a .NET Framework (4.8-ig bezárólag) használói valószínűleg megjegyezték, hogy a produktum automatikus verziózása egyszerűen megoldható volt a projekt tulajdonságai között az assembly verziót átírni (pl.) 1.0.* formátumra és az utrolsó két szekció automatikusan inkrementálódott (pl. 1.0.xxxx.yyyy).

.NET Core áthidaló megoldás

Na, ez a megoldás a .NET Core 2-től (a hibrid 5.0-t is beleértve) nem, vagy legalábbis nem pont így működik. De erre is van megoldás.

Amivel biztosan működik

.NET Core 2, 3 esetén, valamint a .NET 5.0 framework verziók esetében egészen biztosan működik az alábbi trükk.

Ehhez két fájlt kell módosítani, lehetőleg külső editorral, miközben a Visual Studio-ban az adott projektünk be van zárva.

A projektfájl (.jcsproj)

Ez egy XML fájl lesz, melyben kell lennie egy PropertyGroup csomópontnak, az itt lévő többi tulajdonság változtatása nélkül kell beszúrni a két, alábbi tulajdonságot. Mentsük a fájlt és zárjuk be.


	…
	False
	False
	…

A program class (program.cs)

Azt a program.cs fájl kell még editálnunk, amelyben a Main() metódus található.

Ide szúrjuk be az alábbi sort, az using szekció alá, annak utolsó sorát követő új sorba.

[assembly: System.Reflection.AssemblyVersionAttribute("1.0.*")]

Innentől kezdve minden build esetén inkrementálódik a verziószám utolsó szekciója, az utolsó előtti pedig minden nap fog új kombinációt kapni.

Sötét téma CSS-ben

Ma már a legtöbb eszközünk (Windows 10, Android, iOS) képes arra, hogy az éjszaka érkeztével úgynevezett dark mode-ra (sötét téma) váltson, ezt egy sor alkalmazás, köztük a böngészők is támogatják, ha a rendszerünkből is a legfrissebbet használjuk.

Talán már van két éve is, hogy a webprogramozóknak kecsegtető CSS megoldás is elérhető, persze nem mindenáron.

A reszponzív, a megjelenítőhöz igazodó, mobilokon is tökéletesen használható weboldalaknál már ismerős a media query, ezzel lehet ugyanis a képernyőhöz, vagy épp a nyomtatott papírhoz igazítani a megjelenést. Ennek segítségével lehet a sötét módot is használatba venni:

@media (prefers-color-scheme: dark)
{ // rules in here will only be applied if the user's OS is in dark mode! }

Ahogy a fenti példakód is mutatja, az így létrehozott blokkba kerülnek a sötét tartalmi elemekre vonatkozó módosítások. Tehát itt azokat a szelektorokat használhatjuk, amikre a világostól eltérő témát használni akarjuk érvényre juttatni.

Természetesen fordítva is működik, ha a sötét az alapértelmezett témánk, de világosra is válthat a webes app.

// Default body in dark
body
{
background-color: black;
color: white;
}

// Changes if the theme switched to light
@media screen and (prefers-color-scheme: light)
{
body
{
background-color: white;
color: black;
}
}

A dolog nem újkeletű, de ahogy látom, térnyerésére még mindig várni kell.

A böngészőtámogatottsághoz hozzátartozik, hogy az elterjedt Firefox, Edge, Opera, Safari, Chrome nagyágyúk legfrissebb változatai már egészen biztosan támogatják az új media query-t, de érdemes minél több böngészővel tesztelni. A régebbi verziók egészen biztosan nem tudnak mint kezdeni az új funkcióval, de a jó hír, hogy ez esetben semmi sem történik. Nem lesz használhatatlan az oldal, "csupán" semmi nem változik a sötét téma esetén.

[C#] Egyszerű és gyors inputbox adatbekéréshez

Ha a felhasználótól szeretnénk adatot bekérni, viszonylag ritka eset az, hogy egyetlen stringet (vagy stringből átalakítható egyéb adattípust) kérjünk be, de akár elő is fordulhat. Egészen biztosan van ezer plusz egyféle NuGet package ennek megoldására, illetve összetett adat esetén egyébként is javasolt a saját adatbekérő form használata. De ha egyrészt egy gyors, gyári megoldást szeretnénk, másrészt nem kell semmi sallang, erre van egy kevésbé ismert beépített megoldás.

Aki Visual Basic-ben programozik, annak ismerős lesz, de azt talán kevesen tudják, hogy ez elérhető C#-ban is.

C# inputbox

Hogyan működik?

Először is adjuk hozzá a megfelelő VB refrence-t a projektünkhöz:

[Projektnév] > Add > Reference > Assemblies > Microsoft.VisualBasic

C# inputbox

Majd tegyük be a class fejlécébe:

using Microsoft.VisualBasic;

Végül használjuk:

string input = Interaction.InputBox("Prompt", "Title", "Default", x_coordinate, y_coordinate);

C# inputbox

A visszatérési érték egy string a beírt adattal. Üresen hagyott mező vagy "Mégse" gomb lenyomása esetén üres string az eredmény. Csak az első paraméter kötelező, a többi opcionális., ez lesz az inputbox szöveges (magyarázó) része. A többi opcionális, a második lesz az inputbox címsora, a harmadik a default szöveg a beviteli mezőben, míg az utolsó kettő az űrlap pozícióját határozza meg.

Azt nem mondom, hogy minden bajunkat ez meg fogja oldani, de egyrészt rém egyszerű és mindig kéznél van, másrészt ha épp csak ennyire van szükségünk, akkor fölösleges túlbonyolítani.

Egyedüli hátránya, hogy sajnos a kapott inputbox nem átmérezhető, sem programozottan, sem futtatáskor.

[PHP] Codeigniter XML-RPC szerver/kliens SSL/HTTPS kiegészítése

Codeigniter

A Codeigniter nevű PHP framework-öt már elég régóta, több, mint 10 éve használom, ám annyira gyorsan fejlődik, és sokszor teljesen feleslegesen távolítanak el belőle remek funkciókat, hogy gyakorlatilag tényleg lemaradtam vele, és csupán azt hegesztem hozzá, ami tényleg fontos.

Az XML-RPC szerver/kliens nálam már régóta kiépült, gépek automatikus kommunikációjához használom. Az XML-RPC ráadásul már ki is került a hivatalos Codeigniter verziókból, állítólag a PHP 7.0 miatti nehézkes megoldás miatt (persze ez csak bullshit, ha valamit nagyon akarunk, megoldjuk PHP 7.0 alatt is, nekem sikerült).

Az XML-RPC egyetlen nagy hátránya, hogy nem támogatja a most már de-facto kötelező HTTPS-t. Nagy kár. A neten fellelhetők félmegoldások, nekem egyik se működött, pedig pl a cURL kiegészítés egész jól hangzott.

Marad hát a saját megoldás, ami, néha a dolgok mögé nézve nagyon egyszerűnek tűnik. Akit nem érdekel az ezzel kapcsolatos technikai részlet, irány a poszt végén lévő GitHub link, ahonnan letölthető.

Nagyon egyszerű a trükk

Kellett törnöm a fejem, miért nem működik, aztán rájöttem, hogy az fsockopen körül lesz a megoldás, ugyanis ez már elég erősen legacy a PHP-ben. De hiába őskövület, rábírható az SSL-féle 443-as port használatára.

Volt egy ilyen sor az eredeti XML-RPC library-ben:

$fp = @fsockopen($this->server, $this->port,$this->errno, $this->errstr, $this->timeout);

Ennek az elejére biggyesztettem egy apró kiegészítést, ami 443-as port esetén"ssl://"-rel egészíti ki a szervert. Íme:

$fp = @fsockopen(($this->port == 443 ? "ssl://" : "").$this->server, $this->port,$this->errno, $this->errstr, $this->timeout);

És tényeg ennyi. Innentől kezdve, csupán egy sor módosításával HTTPS-en keresztül is ugyanúgy megy a kommunikáció, mint azelőtt.

Letöltés, telepítés

Ezt fel is dobtam GitHubra, ott megtalálható, hogy pontosan mit, hová kell letölteni, bemásolni - egyetlen .php fájlról van szó.

GitHub link

Bízom benne, másnak is hasznos lesz, ahogy nekem is az.

//Statelit is marked deprecated and will be removed in the next version