Programozási nyelvek és a Morgan Stanley
A Morgan Stanley-nél az Enterprise Application Infrastructure (EAI) részleg mintegy száz fős globális csapata foglalkozik a programozási nyelvekkel és a hozzájuk kapcsolódó technológiákkal. A főbb programozási nyelvek (Java, C/C++, C#, dinamikus nyelvek, web technológiák) mindegyike egy-egy külön alcsoporthoz tartozik. Ezen csoportok feladata, hogy összefogják és kiszolgálják a vállalaton belül található több ezer alkalmazásfejlesztő igényeit. Az egyes nyelvek szakértőjeként belső felhasználású könyvtárak fejlesztésével, karbantartásával, nyílt forrású könyvtárak integrálásával, fejlesztőeszközök készítésével, szaktanácsadással és az új technológiák vállalati alkalmazásának kiértékelésével foglalkoznak. Egy ilyen pusztán technológiai és kutatás-fejlesztési csoport létrehozásának előnye, hogy a vállalat nagy mérete ellenére is gyorsan tud reagálni az új technológiai kihívásokra, az újra felhasználható közös komponenseknek köszönhetően pedig gyorsabb és minőségibb alkalmazásfejlesztést tesz lehetővé.
Programozási nyelvek kiválasztásánál több szempontot kell figyelembe venni. Szempont például a program sebessége, a kód karbantarthatósága és a fejlesztés hatékonysága. Bizonyos esetekben a tiszta és könnyen kezelhető kód és a gyorsabb fejlesztés fontosabb szempont, mint a futásidő. Ahol a sebesség kritikus szempont, ott nyilvánvalóan a statikus nyelvek a preferáltak, ahol a sebesség kevésbé fontos vagy a program futása más külső tényezőktől függ, ott érdemes valamelyik dinamikus nyelvet választani.
Python
A Morgan Stanley esetében a dinamikus nyelveket többnyire az infrastruktúráért felelős csapatok, a belső mérnökök használják, míg az üzleti alkalmazások esetében inkább a statikus nyelvek jellemzőek. A Python mint scriptnyelv nagyon fontos eszköz az üzemeltetők kezében, használatával olyan automatizált rendszerek építhetőek, amelyekkel a több tízezer szerver kezelése, konfigurálása sem okoz problémát.
Ennek megfelelően a befektetési banknál fontos szerepet töltenek be a különböző scriptnyelvek (Python, Perl, R, PowerShell), melyek sokszor szimbiózisban élnek a statikus nyelvekkel, köszönhetően a statikus és a dinamikus világ (például C és Python) közötti átjárást biztosító interface-eknek. Sok esetben a teljesítmény-kritikus rész statikus nyelven kerül megvalósításra, vagy egy meglévő rendszerbe kerül beépítésre a dinamikus nyelv, például egy Java GUI-val rendelkező alkalmazás Python kóddal ellenőrizheti a beviteli mezők értékeit.
A Morgan Stanley egészen különleges helyzetben van a Python Interpretert (futtatókörnyezetet) illetően is. Mivel a nyelvet szerverek konfigurálására is használják, elengedhetetlen minden lehetséges platform támogatása. Kihívást az jelenthet, ha olyan rendszereket is támogatni kell, amiken a Python nem elterjedt. Ekkor előnyös tulajdonság az, hogy a forráskód elérhető, ami nagy segítség a probléma felderítésében. Legtöbbször a hibát meg lehet oldani a fordítási opciók megváltoztatásával, de előfordul, hogy az interpreter javítása szükséges.
Csomag- és verziókezelés: mindig a legújabb a jobb?
A programozási nyelvekhez tartozó csomagok telepítése is eltér a megszokottól. Minden csomag egy globális fájlrendszerre kerül feltelepítésre, így minden gépen ugyanazok a csomagok érhetőek el, mely több tízezer gép esetén nagyban segíti a csomagok és szoftver komponensek szinkronban tartását.
A csomagok verziójának kezelése felveti a kérdést: mi történjen a régebbi verzióval? Sok rendszeren működőképes megoldás az, ha mindig a legújabb verziót telepítik, addig ha több száz program függ egy adott verziótól, a legújabb csomag telepítése komoly problémákat okozhat – különösen amikor az új verzió nem kompatibilis a régivel. A programok tesztelése megoldást jelenthetne ugyan, de ilyen rendkívül nagy számú program esetén ez nem hatékony.
A belső fejlesztésű csomagoknál kevésbé jelentkezik ez a probléma, hiszen ott a kompatibilitás megléte könnyen igazolható, a kívülről származó csomagok esetén ez azonban már nem ennyire egyszerű.
Amennyiben a régi és az új verzió is elérhető marad, a meglévő programok tovább futhatnak a régi verzióval, míg az új programok használhatják az újat. Bár ez lehetséges megoldás, hátránya mégis, hogy a csomagok száma csak nő, vele együtt a szükséges globális tárhelyigény is.
A cég a problémát a csomagok kötegelésével oldotta meg. Az egymással kompatibilis verziójú csomagokat kötegekbe szervezik, és meghatározott időközönként (hetente) kiadják. Ez előnyös a fejlesztőknek, akik a csomagokat használják, mert a kért funkció vagy hibajavítás akár a következő héten elérhetővé válhat. A kötegek 3 hónap múlva törlődnek a rendszerből, így a fejlesztők rá vannak kényszerítve, hogy legalább 3 havonta frissítsenek egy újabb verzióra. További korlátozás hogy egy csoport csak egy előre meghatározott számú köteget használhat, tehát ha az adott hiba javítására vagy új funkcióra van szükségük, akkor frissíteniük kell. Mivel a kötegeket gyakran adják ki, a változások száma a két kiadás között minimális, így a frissítés egy újabb verzióra lényegesen könnyebb.
A csomagkezelésben a függőségek kezelése is kihívást jelenthet. Például az R statisztikai nyelv esetében a függőségek kezelése fejlett, a mellékelt metafájl pontosan tartalmazza, hogy mi szükséges az adott alkalmazás futásához, így a függőségek automatikusan telepíthetőek. Ugyan ilyen metafájl a Python esetében is létezik, ennek használata azonban nem terjedt el széles körben.
A Python esetében érdekes kérdés a 3-as verzióra való átállás is. A hivatalos Python-álláspont, hogy az alkalmazások 2.x verzióban készülnek el és a 2to3 automatikus kódfordítóval készül el az újabb verziós kód. Ennél azonban figyelni kell a fordító korlátozásaira, egyébként kiválóan működik a rendszer. A 3.x-re való átállást egyelőre megnehezíti, hogy nem minden csomag érhető el az újabb verzióban, ezért rendszerint éles környezetben marad a 2.x.
Aktív közösség
Az egyes nyelveket használó fejlesztők közös levelezőlistán vannak, itt tehetik fel egymásnak a különböző kérdéseket. A nyelvvel foglalkozó EAI kollégák követik ezeket a listákat és válaszolnak az olyan esetekben, amikor a 400-500 fejlesztő nem tudja az adott kérdésre a választ. A fejlesztők munkáját részletes dokumentáció és FAQ segíti, ez utóbbit (nyilván) a rendszeresen felmerülő kérdések alapján állítják össze. A dokumentációkat egy belső wiki rendszerben tárolják, amit főleg az adott nyelvvel foglalkozó munkatársak tartanak karban, de bárki szerkesztheti a tartalmat.
A szabad szoftveres környezet sok szempontból előnyös a befektetési banknak. Nyilvánvaló előny a nyílt szoftverek ingyenessége, valamint az is, hogy a szoftverek karbantartását, tesztelését a közösség végzi. Kulcsfontosságú a cégnél, hogy a forráskód elérhető, ezzel nagyon sok időt és erőforrást lehet megtakarítani egy adott probléma felderítésekor. Nagyon fontos továbbá, hogy az esetleges probléma javítható a kód szerkesztésével, mivel sok esetben egy adott szoftver nincs felkészítve arra, hogy nagyobb rendszereken fusson, vagy a szoftver fejlesztői nem gondoltak egy adott funkció megvalósítására/optimalizálására. Ekkor a cég végzi el a program módosítását, és a változtatást a hiba leírásával együtt elérhetővé teszi a fejlesztők és a közösség számára – amik aztán a közösség jóváhagyása után bekerülnek a szoftver következő verziójába.
További információk a Morgan Stanley-ről: www.morganstanley.hu
(A Morgan Stanley megbízásából készített anyag.)
- A hozzászóláshoz be kell jelentkezni
- 7496 megtekintés
Hozzászólások
"Ugyan ilyen metafájl a Python esetében is létezik, ennek használata azonban nem terjedt el széles körben." - lehet, hogy a Morgan Stanley-nel nem terjedt el, de jobb helyeken pip requirements file-okat hasznalnak a python koderek.
- A hozzászóláshoz be kell jelentkezni
Jaj de nagyon hirdet a Morgan Stanley. Értem én, hogy emberhiány van, de szerintem ettől nem fog több ember jelentkezni hozzátok.
- A hozzászóláshoz be kell jelentkezni
a második bekezdés után feladtam elolvasni ezt az unalmas hülyeséget.
már csak azt nem értem, hogy ezen hirdetéseknek mi lehet a célja, mert ez nem álláshirdetés, szóval az ilyen cikkektől nem hiszem, hogy majd annyira odalesznek ettől a cégtől. (pláne úgy, hogy mindenki tudja, hogy náluk úgy kell öltözni mint egy vesztes köcsög ...)
_______
16,67 %
- A hozzászóláshoz be kell jelentkezni
[feed_the_troll]Képtelen voltál magadban tartani a dress code fikázást, ugye?[/feed_the_troll]
- A hozzászóláshoz be kell jelentkezni
(pláne úgy, hogy mindenki tudja, hogy náluk úgy kell öltözni mint egy vesztes köcsög ...)
Nem értem, ez miért téma még mindig. Két lehetőség van:
a) nem zavar, hogy van dresscode; ebben az esetben elmehetsz akár a Morgan Stanley-hez is dolgozni
b) zavar, hogy van dresscode; tehát nem mész a MS-hez dolgozni.
Mit kell ezen állandóan drámázni?
- A hozzászóláshoz be kell jelentkezni
Nagyon sok olyan ember van, akit a munka jellege, a kihívás mérete meggyőz arról, hogy ide érdemes elmenni, mert várhatóan érdekes a meló. Szerintem jó a cikk, jó a módszer. Attól, hogy te szívesebben dolgoznál egy olyan cégnél, ahol lehet strandpapucsban és vicces-kocka pólóban tárgyalni az ügyfelekkel, még nagyon sok olyan is van, aki az érdekes, kihívásokkal teli munkáért akár odáig is elmenne, hogy felvegyen egy vászonnadrágot és egy rövid ujjú inget :P
- A hozzászóláshoz be kell jelentkezni
sportcipőben és pólóban járok munkahelyre (hideg esetén még pulóverben). programozó vagyok és nem üzletember. pont.
_______
16,67 %
- A hozzászóláshoz be kell jelentkezni
Te szabod meg a saját korlátaidat, lelked rajta.
--
Gábriel Ákos
http://i-logic.hu
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
ebben a kinyaljuk magunkat targyalosdiben az a vicc, hogy mindket oldal a masik elott akar jo (hamis) benyomast tenni ezzel :D
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
nalad mar "kinyaljuk magunkat" kategoria egy vaszonnadrag meg egy ing?
- A hozzászóláshoz be kell jelentkezni
Aki utál vasalni, annak az, igen.
- A hozzászóláshoz be kell jelentkezni
Mostanában egész jól működnek a vasalásmentes inget. Ha kicsit össze is gyűrődik sokkal könnyebb vasalni.
- A hozzászóláshoz be kell jelentkezni
latom a lenyeg atjott!
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
"Attól, hogy te szívesebben dolgoznál egy olyan cégnél, ahol lehet strandpapucsban és vicces-kocka pólóban tárgyalni az ügyfelekkel,"
Még mindig nem beszélt senki ügyféllel tárgyalásról. Programozásról volt szó. Ráadásul minél nagyobb a cég, annál valószínűbb, hogy a fejlesztő külső ügyféllel soha a büdös életben nem is fog találkozni, a MS pedig elég nagy.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
"strandpapucsban és vicces-kocka pólóban"
Nem ertem, hogy az emberek miert csak vegletekben tudnak gondolkodni. Egy sotet farmer egy tiszta feher vagy tiszta fekete galleros poloval (minta nelkulivel) annyira azert nem gaz, cserebe egesz konnyen karbantarhato ruhazat, es ugyfellel szemben is vallalhato.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
99, hogy ebben sehol nem szólna meg a főnököd. Csak ha menő bróker lennél. :D
- A hozzászóláshoz be kell jelentkezni
Hat ez az en tapasztalatom is. De ne tudd meg, egy hasonlo kiszolasert mit kaptam itt a HUP-on...
Es egyebkent en tenyleg valami hasonlokepp oltozom. A legnagyobb devianciam, hogy idonkent gallernelkuli es/vagy szurke polot veszek fel.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Azt hittem, ezt a fajta lázadást legkesőbb a szalagavató környéken elhaggya az ember. :)
- A hozzászóláshoz be kell jelentkezni
Azt hittem, az első egy-két nyelvtan karó után elhagyja az ember az ilyen hibákat :)
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Ez az én lázadásom. :)
- A hozzászóláshoz be kell jelentkezni
Nekem tetszett a post, köszi!
- A hozzászóláshoz be kell jelentkezni
Furcsanak talalom, hogy ha ennyire fontos a verzio, akkor miert nem hasznalnak alkalmazashoz szabott virtualenvet. Ezt lehetne mindig az adott alkalmazashoz deployolni, es halalpontosan azok a verziok lennenek benne, amikhez az adott app tesztelve vagyon. Talan tobb helyet foglalna (mert egy ilyen rendszerben minden app sajat virtualenvvel jon), cserebe a futtatas korulmenyeit ennel jobban semmi nem garantalna.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
A virtualenv-vel ebben az esetben az lenne a problema hogy minden fejlesztonek sajat maganak kellen karbantartania a csomagokat, ami egyreszt nem feltetlenul a fejleszto dolga, masreszt o nem biztos hogy egy lxml-t vagy egy masik binaris csomagot le tudna forditani. A mostani rendszerben a csomagok karbantartasa elkulonul a fejlesztestol, es minden feltelepitett csomag automatikusan elerhetove valik mindenkinek (ami hatekony abban az esetben ha valamelyik csomagot sokan hasznalnak mivel ahelyett hogy mindenki kuzdene azzal hogy sajat maganak feltelepiti a csomagot, mar elerheto es csak hasznalni kell). Hogy egy program milyen verzioju csomagokkal fut, az szabalyozva van - ezt a fejlesztonek kell megadnia a sajat programjaban, es ez egyben garantalja hogy a program mindig ugyanazzal a verzioval fog futni.
- A hozzászóláshoz be kell jelentkezni
Csak kérdem, fejlesztői szerver nem játszik? Akkor a környezet egységes lenne minden fejlesztőnek.
- A hozzászóláshoz be kell jelentkezni
A globális filerendszer megteremti az egységes környezetet.
- A hozzászóláshoz be kell jelentkezni
Ez nem is feltetlen az o feladata,reszben mert python ala is vannak csomagkezelok, az egyik ilyen a pip, mely kepes eleg sokmindenre, tobbek kozt feltelepiteni a csomagot is, sot talan meg a nativ kodot is leforgatja neki; reszben pedig azert, mert letezik egy kicsit magasabb szint is, peldaul chef, mely kepes a virtualenvek automata osszelovesere. Innentol a fejlesztonek semmi mas dolga nincs, mint megirni egy deployment konfigot a chef szamara, a tobbit a chef maga elvegzi (virtualenv letrehozas, dependency telepites, app telepites).
Elobb-utobb ugyis elo fog az jonni, hogy bizonyos appoknak bizonyos cuccbol nem jo az a verzio, ami epp aktualisan a kozosben van, hanem ujabb/regebbi kell. Mivel pythonnal nincs verziofuggo import (ellentetben peldaul a ruby-val es a rubygems-sel, ahol van), ez rovid uton conflicthoz tud vezetni...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Kicsit keveredtek itt a dolgok. Nem egy specifikus verzió van a közösben hanem sok; egymás mellett elférnek a globális filerendszeren, a fejlesztő meg meg tudja mondani (igen, verzióspecifikus importtal, python esetén is) hogy melyiket szeretné használni.
A cikk említi a csomagok kötegelését, 3 hónapos élettartamot, stb, erről csak bizonyos, leginkább belső fejlesztésű projektek esetén van szó.
- A hozzászóláshoz be kell jelentkezni
Ez erdekel, hogy lehet verziospecifikus importot csinalni? Multkor szenvedtem valami ilyesmivel, es nem igazan sikerult sehogyse, bar teny, hogy en inkabb Rubys vagyok, mint Pythonos.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Saját modullal, ami tudja hogy a globális filerendszerünk hogy van szervezve.
- A hozzászóláshoz be kell jelentkezni
Azt hittem, van ra nyelvi support azota, amiota utoljara komolyabb kapcsolatom volt egy kigyoval. Ezek szerint semmi valtozas.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Erről nyilatkozzon valaki aki ért pythonhoz :)
- A hozzászóláshoz be kell jelentkezni
Ez történetileg kb. úgy szokott lenni, hogy a az összes sw (majdnem egy kernel nélküli disztrib, azaz egy együttműködő verzió konstelláció adott platformon, viszont akár adott gcc/libc/msvc/stb verzióval) egy adott könyvtárstruktúrában van, kb. ahogyan azt a MS Studio teszi. De nincsen debug és opt-ra korlátozva, és az összes (verzió) függőség implicit bele van drótozva. (az, hogy az AFS hogyan timeoutol egy dinamikus könyvtár távoli betöltésnél ekkora elosztott fájlrendszernél, az külön tészta).
Egy ilyen környezeteztet (legyen az dev sw.v1 és sw.v2-vel, dbg-al vagy production opt-al, vagy arm, x86, amd64 stb.) gyakran környezeti változóval állítanak a shell-ben. Amikor a shell korlátjai (pl. env var hossza betelik mondjuk egy pathnál) és a shell-függetlenség (bash, zsh, tcsh, cmd) már fenntarthatatlan, akkor a konfigurációkezelőt (gondolj pl scram, cmt és társaira mint cmake) lecserélik egy "teljes" nyelvre -- jellemzően python (kb. puppet) de lehetne ruby is (lásd chef).
Rengeteg proprietary konfiguráció-kezelő python script van ami adott verziószámot behelyettesít a path-ba, azt futtatási környezeti változóvá teszi, és ebben a világban él a build rendszer és fut annak terméke, maga a kívánt sw, "egy lépésre" innen a fakeroot-tól (OpenGenera és OpenVMS érdekesek ebből a szempontból). Gondolom az MS sem kivétel. A py-t lényegében egy perl/sh-nál fejlettebb ragasztónyelvként szokás használni ilyen kontextusban.
- A hozzászóláshoz be kell jelentkezni
Koszonom a magyarazatot, ez sokmindent megvilagitott.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Van ra support, a setuptools peldaul tartalmaz erre megvalositast, bar az jo kerdes hogy ugyanabbol a libbol lehet-e tobb verzio parhuzamosan a diszken. Viszont megadhatod a fuggosegeket es akkor azokat a tenyleges futas elott ellenorzi. Nalunk ez nem mukodik mert a spceifikacioban megadhatod azt is hogy az igenyelt verzio az egy adott verzional nagyobb legyen, ez problema akkor amikor egy ujabb verzio jelenik meg a filerendszeren ami nem kompatilibis az adott programmal. Tobbek kozott ezert lett sajat modul, de ez nemileg tobbet is nyujt annal mint a sys.path allitgatasa. Peldaul tamogatunk tobb verziot pythonbol, parhuzamosan, es van parhuzamos 32-bit es 64-bit support is, tehat nem teljesen mindegy hogy a program milyen modult huz be (tisztan python kod eseten majdnem mindegy, bar a pyc file-ok inkompatibilisek python verziok kozott, viszont ha van .so vagy .pyd (dll) is a csomagban akkor ott mar nem mindegy a python verzio es a bitek szama sem).
- A hozzászóláshoz be kell jelentkezni
Igen, a pyc es a pyd/so fajlokrol tudtam en is, hogy elegge verziofuggoek...
Koszonom ezt a magyarazatot is egyebkent. Probalom tagitani a latokoromet a Python bevonasaval, regebben foglalkoztam vele, tehat annyira nem idegen azert ez a vilag, de valahol feluton Ruby-ra valtottam, es azota nem sok kozom volt olyan cuccokhoz, amihez kigyot kellett volna szeliditeni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Arról lehet tudni, hogy R-t mire használjátók ?
Nekem annó diplomamunkánál mentette meg az életem.
Valami üzleti döntéstámogató dolognál tudnám elképzelni, adatszűrés, ilyenek. Bár pont most akarom szabályozástechnikánál is bevetni, szóval simán sokféle dologra használható, csak érdekelne, hogy ti mire használjátok.
- A hozzászóláshoz be kell jelentkezni
Mi az a dinamikus nyelv?
Mi az a sztatikus nyelv?
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Köszi. Akkor már csak az a kérdés, mi a statikus nyelv.
- A hozzászóláshoz be kell jelentkezni
Általában érdemes megkülönböztetni a dinamikus nyelvet és dinamikus típussal rendelkező nyelvet. Léteznek viszonylag statikus nyelvek dinamikus típussal.
A dinamikus azt jelenti, hogy a program vagy maga a nyelv(!) megváltozik fordítás vagy futtatási(!) időben. Gondolj egy olyan programra, ami tudja kezelni az osztályait: hozzáad, töröl, átnevez, signal/slot-okat hoz létre és töröl, átdefiniál, öröklődést változtat, öröklődési szabályt változtat stb. Ettől lesz egy nyelv dinamikus, nem a típuskezelésétől.
A legtöbb dinamikus rendszer viszont dinamikus típuskezeléssel rendelkezik, általában azért, mert nehéz külön létrehozni egy sajátos típusrendszert meg egy olyan típusrendszert, ami magában dinamikus.
- A hozzászóláshoz be kell jelentkezni
Ezekszerint kb. minden nyelv dinamikus, ami valamilyen VM-en fut, es/vagy van reflection API-ja?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Pont hogy nem, sőt.
Az még nem egy dinamikus nyelv, ami egy (c)-olt API-t implementál egy JVM-en, ahogyan egy qt-s llvm-es c/cpp sem igazából az.
- A hozzászóláshoz be kell jelentkezni
Akkor a template metaprogramming erősen dinamikus nyelvvé tette a C++-t? Mert a makró metaprogrammingra rá lehet mondani, hogy az a lexikális elemzés ELŐTT történik, szóval nem is igazi...
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Tehát a Java dinamikus nyelv. Futásidőben lehet osztályokat definiálni, metódusokat hozzáadni és hasonlók.
Érdekes, senki nem tartja dinamikus nyelvnek.
Annak a kifejezésnek pedig, hogy futásidőben megváltozik a nyelv, sok értelme nincs.
A programkönyvtárak megváltozhatnak, de a nyelv?
Ha lehetne futásidőben új nyelvi elemet definiálni, akkor nem tudnának működni a parserek. Hiszen nem tudhatják, hogy futásidőben mi lesz foglalt szó és mi nem abból a kódrészletből, amit éppen neki elemeznie kéne.
- A hozzászóláshoz be kell jelentkezni
Tetszett, köszi.
♲♻♲
- A hozzászóláshoz be kell jelentkezni
Apro problemam az MSel, h anno felvettek magukhoz, de 2 honap alatt nem jutottunk el a szerzodeskoteshez. Szerencse, h emiatt nem mondtam le mas allasinterjukat.
Masreszt igy utolag orulok, h nem jott ossze, mert nem igazan all csaladbarat munkaltato hireben.
- A hozzászóláshoz be kell jelentkezni
ez mit jelent? én sok túlórát hallottam (kifizetetlenül) és stresszes körülményeket (a looser öltözéken kívül). jók az értesüléseim?
_______
16,67 %
- A hozzászóláshoz be kell jelentkezni
Az én tapasztalataim szerint nem.
- A hozzászóláshoz be kell jelentkezni
2-es python .... omg....
--
GPLv3-as hozzászólás.
- A hozzászóláshoz be kell jelentkezni
Ugyan miért, mesélj már.
♲♻♲
- A hozzászóláshoz be kell jelentkezni
Mi a baj a python2-vel, miben jobb szerinted a 3-as?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Sok mindenben. Főleg a unicode kezelésében, de a fejlesztések miatt a 3-as vonal amúgy is lassan elhúz a 2-es mellett. Viszont ettől még sok esetben lehet indokolt a 2-es használata.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Nemrég kerestem rá, hogy mi is a lényegi különbség a 2 és a 3 között, és találtam jópár véleményt. Olyan véleményeket, amik nagyon lehúzták a hármast (amit egyébként jól mutat, hogy még mindig nagyon kevesen használják, el vannak maradva kicsit az átállási ütemtervtől), pont a Unicode részen. Fasza, hogy minden Unicode, csak a világ nem ilyen, és a byte tömböt reprezentáló típus meg hülye ansi stringnek.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Jól értem tehát, hogy python 3-ban csak UTF8 lenne? Ha így van, akkor számomra ez egy hatalmas plusz pont, valahol el kell kezdeni. Ugyanitt remélem, hogy a Windows 9-ből már csak 64 bites lesz, stb. Abszolút az elavult, ütközést okozó és szabványtalan megoldások kukázása meleltt vagyok.
- A hozzászóláshoz be kell jelentkezni
Elméletben szép, gyakorlatilag bukó: http://lucumr.pocoo.org/2011/12/7/thoughts-on-python3/
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
No offense, de ez egy masfel eves cikk. Mennyire lehet ez meg uptodate? Nem tamadas, tenyleg erdekelnek a tapasztalataid.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Én sem tudom, nem nagyon foglalkoztam Python 3-al, mondom csak most kezdett egyáltalán érdekelni a téma, csak találtam ezt, és az issuek benne olyanok, hogy nem arrafele mutat a világ, hogy ezek meg lesznek javítva, mert úgy látszik, hogy a szándék sincs meg rá. De lehet azóta már tárgytalan, nem tudom.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Ha magad is tudod, hogy fogalmad sincs róla, hogy mi a helyzet a Python3-mal _ma_, akkor minek idézel egy 2011-es írást? Esetleg nézz utána, és úgy nyilatkozz. (Egyébként a kifogásolt dolgokat nagyrészt már javították.)
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Te mekkora tahó vagy, öröm lehet veled dolgozni :)
Amúgy azért idézek egy 2011-es írást, mert miért ne? Amit felvetettek benne, az elgondolkodtatott, de annyira nem érdekel az egész téma, hogy komolyabban belemélyedjek. Ilyen egyszerű.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Nem bírod a kritikát? Az élet kegyetlen, szokd meg :)
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Bírom a kritikát, az arrogáns balfaszokon viszont mosolyogni szoktam.
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
:)
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Ennek a cikk kapcsan vezettek ujra be a "u" prefixet az unicode objektumokra. http://www.python.org/dev/peps/pep-0414/
- A hozzászóláshoz be kell jelentkezni
Nem, rosszul ertelmeezed. Megmaradnak az encodingok, csak - ha jol tudom - a belso stringtarolas unicode lesz. De majd az okosok megmondjak.
Nem hiszem, hogy a klasszikus encodingok nagy hirtelen kihalnanak, egy csomo meglevo adatbazis es dokumentum hirtelen elerhetetlenne valna.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Es mi van akkor, ha a belso stringtarolas Unicode? A Java igy mukodik 18 eve.
- A hozzászóláshoz be kell jelentkezni
Csakhogy ok egesz turhetoen valositottak meg. Olvasd el tetra cikket, erdekes.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Egy olyan cegnel ahol a 7-bit ascii elegseges (es szinte kizarolagos), nem sok elony szarmazik abbol hogy unicode a string tipus (ha jol tudom, mar megoldottak hogy amennyiben ascii-ban van a string, akkor belul is abban marad, nem csinal belole unicode-ot, csak annak mutatja). 3-as python van a cegnel, de egyelore nem erheto el eles kornyezetben. Nem a feltelepites (es a csomagok kezelese) a problema hanem a fejlesztok korlatozasa, okositasa, hogy mielott 3-as python-ra irnak egy programot, nezzenek korul, gondoljak at.
- A hozzászóláshoz be kell jelentkezni
A Unicode visszafele kompatibilis a 7-bites ASCII-val: a megfelelo ASCII karakterkodoknak pont ugyanaz a Unicode code pointja. UTF-8 kodolasban is. Mi itt a problema?
- A hozzászóláshoz be kell jelentkezni
A Unicode önmagában nem jelent kódolást, ahhoz meg kell mondani, hogy UTF-8, 16 vagy mi. Ezek már konkrét kódolások, és UTF-8-ban igazad van, másban már nem feltétlenül, pl 16-ban biztos nem tudsz 1-1 megfeleltetni (a kód persze ugyanaz, de érted a problémát, gondolom).
----
India delenda est.
Hülye pelikán
- A hozzászóláshoz be kell jelentkezni
Az Unicode ugyanugy karakterkeszletet jelent, mint az ASCII, mindkettoben egesz szamokhoz vannak rendelve karakterek. Az egy dolog, hogy az ASCII eseteben ezeket identikus lekepezesekkel byte-okba kepzik le (kodolas), de az UTF-8 eseteben is megtartottak azt, hogy az ASCII karaktereknek megfelelo code pointok ugyanarra a bytesorozatra kepzodnek le.
UTF-16-ra vagy mas kodolasra ez nyilvan mar nem igaz, de aki 2013-ban meg mindig ugy gondolkodik, hogy "eleg az ASCII-7", az valojaban nem is karaktereket akar kezelni, hanem bytesorozatokat. Karaktereket ott kell kezelni, ahol emberi fogyasztasra szant szoveg van (nem veletlenul mas a Javas absztrakcioja sem a Stringnek - nem bytesorozat), es ott meg hamar elojon, hogy nem eleg az angol ABC nagy es kisbetuinek a halmaza, meg akkor sem, ha valaki angol nyelvteruleten el: a nevenek a leirasahoz is kellhet ekezet.
- A hozzászóláshoz be kell jelentkezni
Vagy euro, font jel stb.
- A hozzászóláshoz be kell jelentkezni
Ez teny, de az is teny, hogy bizonyos pontokon az emberi fogyasztasra szant szovegek bytesorozatok - peldaul a fajlnevek eseteben. Ha jol ertem, a Python3 elsodleges problemaja, hogy nincs igazan kontrollod a folott, hogy mit csinal a rendszer, valamilyen otlet szerint dont egy adott kodolas mellett, es ez neked vagy jo, vagy nem jo, de tenni ez ellen nem tudsz.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Ez kicsit zavaros nekem. A Python3-ban van str meg bytes típus. Miért lenne az a "Python3 elsodleges problemaja", hogy belsőleg a string típust hogyan ábrázolja? Ez bármikor megváltozhat (feljebb már írta is valaki, hogy változott), de erről a programozónak nem is kell tudnia.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
A belso reprezentacio tok mindegy. Amikor meg szoveges I/O-van, azt kontrollalnod kell tudni, de annak meg semmi koze a belso reprezentaciohoz, csak annyi, hogy akarmilyen kimeneti karakterkeszlet jelet elo kell tudni allitani. Ehhez viszont kell az, hogy a belso reprezentacio tudja reprezentalni a karaktereket, es erre kell a Unicode. Nem veletlenul hasznal minden modern platform belul Unicode-ot.
- A hozzászóláshoz be kell jelentkezni
En ugy latom hogy a problema az hogy elobb-utobb az unicode-bol byte sorozatot kell csinalni, mert az OS meg a hardver vegulis byteokkal foglalkozik, nem unicode code pointokkal. Az hogy egy code pointbol hogy lesz byte, azt az encoding mondja meg, de ebbol meg van annyi mint egen a csillag es nem mindig jon be az hogy "legyen implicit utf-8". Es ha meg jo is az encoding (amihez szinten szerencse kell mivel bizonyos kodolasok csak egy reszet fedik le a code pointoknak), a normalizalassal megint el lehet csuszni (ez extrem esetben azt is jelentheti hogy ket fileneved van ugyanabban a konyvtarban, mindketto ugyanugy nez ki, de maskepp van abrazolva unicode es byte szinten).
- A hozzászóláshoz be kell jelentkezni
Problema nincs, en azt irtam hogy "nem sok elony szarmazik belole". Pontosabban az egyik problema problema az volt hogy egy unicode code point tobb byteot foglal (ketszer vagy negyszer tobbet, UCS2 v. UCS4), mint egy ascii karakter (ami 1-et). Ezt optimalizaltak ki 3.3-ban (http://www.python.org/dev/peps/pep-0393/).
- A hozzászóláshoz be kell jelentkezni
vajon ha nem nyílt forrású eszközöket használnának, akkor is ennyire a saját igényeikre tudnák szabni azokat?
más: támogatja-e közvetlenül a cég a nyílt forrású fejlesztőket vagy többet ér közösségben való részvétel?
- A hozzászóláshoz be kell jelentkezni