Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP 7
Forum PHP.pl > Wortal > Newsy
Stron: 1, 2
toffiak
Dzisiaj (30 lipiec 2014 ) oficjalnie umarł PHP 6 i narodził się PHP 7.
Deweloperzy języka w stosunku 24:58 uznali że kolejną dużą wersją PHP będzie wersja siódma a nie szósta.
Za zmianą numeracji przesądziły niepowodzenia przy poprzedniej wersji 6. Przypomnę tylko że wersja ta nigdy nie była udostępniona jako stabilna aż wkońcu porzucona całkowicie, większość z nowości z tej wersji została przeniesiona do gałęzi 5.x.

Szczegóły i argumentacja odnośnie zmiany nazwy w linku
Pyton_000
Łojj będzie się działo wink.gif
BigPig
Wydaje mi się, że to był z ich strony dosyć sensowny ruch smile.gif
MatKus
Bardziej od tego, jaką cyferkę będzie PHP miało zastanawia mnie, co wprowadzą i jakie problemy rozwiążą. Ale pewnie na to jeszcze za wcześnie
vermis
Wygląda na to że po prostu wypuszczą stabilną wersję pod nową nazwą PHP7.
!*!
Cytat(toffiak @ 30.07.2014, 15:31:32 ) *
Deweloperzy języka w stosunku 24:58 uznali

Oni się jeszcze bawią w demokrację. facepalmxd.gif
toffiak
Cytat(MatKus @ 31.07.2014, 08:41:08 ) *
Bardziej od tego, jaką cyferkę będzie PHP miało zastanawia mnie, co wprowadzą i jakie problemy rozwiążą. Ale pewnie na to jeszcze za wcześnie


Może wkońcu Unicode, jakaś porządna biblioteka podstawowych typów jak jest np w Pythonie, wyrzucenie <?php ze skryptów... a najprawdopodobniej będzie to coś na wzór Facebookowego HVVM znanego aktualnie jako PHPNG

Cytat(!*! @ 31.07.2014, 11:05:25 ) *
Oni się jeszcze bawią w demokrację. facepalmxd.gif


Demokracja nie jest zła, ale ktoś jednak powinien mieć głos decydujący.
XDocTorX
Uff cyferka wybrana najtrudniejsze za nimi, teraz już tylko muszą napisać kod...
Dejmien_85
Cytat(toffiak @ 31.07.2014, 11:44:23 ) *
Demokracja nie jest zła, ale ktoś jednak powinien mieć głos decydujący.


Demokracja jest zła, bo to rządy większości (czyli głupoty - średnio więcej jest głupszych, niż mądrzejszych). W demokracji masz dwa wybory - albo poprzeć to co chce większość, albo się temu przeciwstawić - w obu przypadkach nic Ci to nie da oprócz satysfakcji, że sobie zagłosowałeś.

Co do zmian - nie wiem co zmieni się w PHP 7, ale mam nadzieję, że odetną pępowinę od obecnych wersji PHP.

Python 3 jakoś żyje.
darko
Zagrywka głównie marketingowa, napędzająca rynek pieniędzmi - książki, które już wydano o php6 (np. http://www.amazon.com/Professional-PHP6-Wr...r/dp/0470395095) trzeba będzie przedrukować i dodać kilka akapitów o PHP7.
Pyton_000
Po co drukować coś czego jeszcze de facto nie ma. Tutaj to akurat strata pieniędzy
SmokAnalog
Cytat(toffiak @ 30.07.2014, 15:31:32 ) *
Deweloperzy języka w stosunku 24:58 uznali że kolejną dużą wersją PHP będzie wersja siódma a nie szósta.

W dodatku wszyscy developerzy o nickach zaczynających się na M, a było ich aż 9-ciu, głosowało za PHP7. Przypadek? Nie sądzę. nerdsmiley.png
Turson
Nie rozumiem, budowa PHP6 nie poszła po ich myśli, to zmieniają numerek na 7, ale... dalej będą robili to samo. Bez sensu
SmokAnalog
Turson, myślę że to ma na celu "odczarowanie" felernej wersji, może to ma dać im kopa motywacyjnego?
Spawnm
To im daje takiego kopa że jeśli wersja 7 okaże się niewypałem, tak jak php6, to php może sporo stracić na rynku, a i komuś pod nogami może zrobi się gorąco.
SmokAnalog
Spawnm, nie wiem czy żartujesz czy nie, ale to co piszesz jest sensowne. To też jest forma motywacji.
Turson
Cytat(SmokAnalog @ 1.08.2014, 18:55:27 ) *
Turson, myślę że to ma na celu "odczarowanie" felernej wersji, może to ma dać im kopa motywacyjnego?

Dla mnie to tak, jakbyś np. tworzył serwis ogłoszeniowy o nazwie X, ale nie idzie ci bo słabo ogarniasz frameworka i musisz się poduczyć, to zmieniasz nazwę na Y i liczysz, że nagle wyjdzie.
!*!
Cytat(Turson @ 1.08.2014, 18:42:30 ) *
Nie rozumiem, budowa PHP6 nie poszła po ich myśli, to zmieniają numerek na 7, ale... dalej będą robili to samo. Bez sensu


Nie będą robili tego samego, bo już to dawno zakończyli i bajery z 6 masz w wersjach 5.x
Zmiana na 7 to tylko zagrywka wizerunkowa, to samo było z winamp 3 na 5.

Moim zdaniem nie będzie rewolucji, nie w takim systemie głosowań. Gdzie jest zespół Zenda, bo to oni trzymają łapę na całym PHP? Dlaczego jako firma oddali to w ręce OS?
Pyton_000
Na php.net jest wyjaśnienie dlaczego taki zabieg został przyjęty.
ZaXaZ
pewnie wkońcu skasują mysql_* raz na zawsze :-))
toffiak
http://www.phpclasses.org/blog/post/242-PH...lease-Date.html

Czyli jednak PHP 7 to PHPNG, cóż wydajność jest ważna ale mogliby też uporządkować sam język, o wsparciu dla unicodu wogóle nie wspomnieli już nie mówiąc o pozbyciu się ( lub sensownym uporządkowaniu ) całej masy funkcji rodem z C.
zulus
7ka to przede wszystkim wciągniecie phpng (w zasadzie już po głosowaniu: https://wiki.php.net/rfc/phpng) który znacznie poprawia wydajność i to bez JIT.

Poza tym jest szansa że jednak pojawi się type hinting:
https://wiki.php.net/rfc/scalar_type_hinting_with_cast
https://wiki.php.net/rfc/returntypehinting

Na internalsach trwa jeszcze dyskusja na temat wrzucenia funkcji wbudowanych do przestrzeni nazw "PHP".
Pyton_000
Type Hinting byłoby w końcu dobrym rozwiązaniem. Brakowało mi tego
viking
Dlatego tak bardzo podoba mi się Zephir. Pracują też obecnie nad JIT a inne rzeczy też już dawno obecne np http://zephir-lang.com/oop.html#return-type-hints . Ale dobre jest to że pomysły wdrażane gdzie indziej jednak z czasem pojawiają się w PHP. Ten język trze na jednak uporządkować albo stworzyć coś nowego.
Dejmien_85
Mam nadzieję, że Zephir, Hack oraz HHVM dadzą tak po dupie core-developerom PHP, że zaczną w końcu działać i nie zrobią z PHP 7 tego, co zrobili z PHP 6 - wtedy też były mega plany i obietnice, a skończyło się na mega klapie.

Ogólnie podobają mi się nowe koncepcje. Szkoda, że nie chcą zerwać kompatybilności z obecnym PHP (i stworzyć nowe, piękne, łanderful i bjutiful PHP) - ale w sumie ich rozumiem, setki apek musiałoby zostać przepisanych, boją się, że PHP mogłoby zostać porzucone.

Zend ma w tym interes, więc będą walczyć o to, aby ludzie nie przeskoczyli na HHVM (i Hacka). Dzięki bogu, że pojawiła się konkurencja (HHVM, Hack, Zephir), bo o PHP 7 byśmy jeszcze do tej pory nie usłyszeli, a core-developerzy dalej by się chlastali z PHP 6.

PS Type Hinting w PHP? Hmm, Nice! cool.gif
peter13135
Cytat
już nie mówiąc o pozbyciu się ( lub sensownym uporządkowaniu ) całej masy funkcji rodem z C.

Nie bardzo rozumiem "problemu" w tym, że te funkcje istnieją. Co da ich usunięcie ? Jakie uporządkowanie masz na myśli ?

Moim zdaniem sensowną ewolucją jest po prosty dołożenie nowych klas, a stare niech zostaną dla zachowania kompatybilności. Np. w c++ masz klasę string, ale jak chcesz to nadal możesz sobie używać funkcji z string.h.
zulus
Cytat(peter13135 @ 18.08.2014, 20:19:55 ) *
Moim zdaniem sensowną ewolucją jest po prosty dołożenie nowych klas, a stare niech zostaną dla zachowania kompatybilności. Np. w c++ masz klasę string, ale jak chcesz to nadal możesz sobie używać funkcji z string.h.

Klasy niestety = narzut, referencje, problemy z porównaniem (equals() z javy tongue.gif ?). Lepiej jakby scalary miały swoje metody (były pseudo obiektami), np wszystkie str* do wywołania jako "sdfsdf"->toLower().

Problemem nie tyle są funkcje C, co bajzel z nazewnictwem / kolejnością argumentów (to wciąż się przewija przez internalsy, np strpos vs explode vs string_replace).

Z nowych ciekawostek dla php7:


Poza tym między 5.6 a 7 prawdopodobnie zostanie wydana 5.7, jako przejściowa (deprecate na elementach które na pewno wylecą itd..).
niebieskiciapek
E tam, marudzenie, że niby jest źle a nie ma języka w którym można pisać i robić poważne zmiany w kodzie wydajniej. Ja już wolę to strtolower czy strpos, niż wkładanie wszystkiego w objekt i pisanie elaboratów jak w java, toporność i całą masę crapu wepchniętą w C++ / STL-a czy niespójność pythona (który nawet szybszy nie jest). Jeszcze JS jest jako-tako zaprojektowany, że można w tym wygodnie pisać pod web (jeśli się wie jak) - tylko na backend specjalnie się to nie nadaje, bo trzeba ręcznie zarządzać podziałem czasu wątku, i pod to pisać praktycznie całą aplikację - a to po prostu niewykonalne.

Hack, czy hhvm... ciekawostki. Najlepiej pisać w tym jeśli to takie fajne. Tylko, że ludzie by chcieli wydajność hhvm albo bezpieczeństwo hacka za darmo, później się okazuje, że trzeba za to dodatkowo zapłacić (i to sporo)... więc piszemy w php. Tak samo jak z node czy go, w php w miarę poprawny kod napisze prawie każdy i bardzo szybko... w czym innym już nie za bardzo. Z tym że 2 w/w są przynajmniej o wiele szybsze, więc można użyć do pisania algorytmów czy wstawek, jak zephir.

Najśmieszniejsze jest to, że w PHP bez problemu można ogarnąć w miarę duży projekt. A na forach dość dużo narzekania. W node czy dart praktycznie jakikolwiek refactoring jest niemożliwy, a kod powyżej 1000 linijek bez sterty komentarzy zamienia się w kupę pełną setek callbacków... a wszyscy tak się tym zachwycają wink.gif
Dejmien_85
Cytat(niebieskiciapek @ 19.08.2014, 13:57:30 ) *
Najśmieszniejsze jest to, że w PHP bez problemu można ogarnąć w miarę duży projekt. A na forach dość dużo narzekania. W node czy dart praktycznie jakikolwiek refactoring jest niemożliwy, a kod powyżej 1000 linijek bez sterty komentarzy zamienia się w kupę pełną setek callbacków... a wszyscy tak się tym zachwycają wink.gif


Punkt widzenia zależy od punktu siedzenia, a religijne wojny trwają od dekad. Oglądając różne konferencje i wypowiedzi starszych programistów (mających po 30 lat doświadczenia w programowaniu), wielokrotnie słyszałem o tym, że wojny religijne to kolejna stała w programowaniu, zmieniają się jedynie języki i uwaga programistów. W dzisiejszych czasach narzeka się głównie na PHP, Javę, C++. Wszystko co jest popularne przykuwa uwagę, a jak mawia stara prawda - popularność mierzy się miarą wrogów.

W każdym języku da się pisać, tylko w każdym się pisze nieco inaczej. Dla niektórych "inność" jest nie do zaakceptowania, tak więc narzekają na "inne" języki, czcząc i wychwalając swojego jedynego wybrańca, "Boga". ; >

I niestety Ty kolego także w to wpadłeś, bo narzekasz tutaj na Javę, C++ i Pythona. ; )

Pamiętaj, że każdy ma inny gust i o gustach się nie dyskutuje. To, że Tobie Java i inne języki nie służą nie oznacza, że są złe. Ja PHP nie bronię, nie identyfikuję się z tym językiem (z żadnym). Znam kilku bardzo doświadczonych programistów (także po 20+ lat doświadczenia), którzy także znają PHP i je używają (co prawda rzadko), mawiają, że jest to dobry język do narzekań - ludzie po prostu lubią narzekać na PHP.

Tak, każdy język ma swoje wady. I nie, nie ma idealnego języka. Język to narzędzie, które zawsze można odłożyć na bok. A gdy ktoś zaczyna się identyfikować z jakimś językiem, uważać go jako swoją prawą dłoń, wtedy zaczynają się problemy...
niebieskiciapek
Tylko, że ja nie narzekam, że Java, C++ czy Python nie nadają się do niczego... jedynie do projektów webowych o specyfice o której tu pewnie rozmawiamy. Bo jeśli tolerancja błędów i szybkość działania PHP jest do zaakceptowania to tak na prawdę na dzień dzisiejszy nie ma czym go zastąpić. Te wszystkie "alternatywy" wyglądają dobrze jedynie na papierze ew. w bardzo wąskim przedziale zastosowań... a dorosłe języki w ogóle się do tego typu projektów nie nadają, bo były projektowane Xdziesiąt lat temu, do czegoś zupełnie innego.

Używałem C++ i Java na desktop, tak samo nie ma tego na dzień dzisiejszy za bardzo czym zastąpić.
peter13135
Cytat
Bo jeśli tolerancja błędów i szybkość działania PHP jest do zaakceptowania to tak na prawdę na dzień dzisiejszy nie ma czym go zastąpić.

w firmie w której pracuję, robi się strony www (tzn. stronek jako tako nie klepiemy, ale może to być część większej aplikacji) w technologiach ms (.net, asp.net) a także w javie (jsp itp.).
Aplikacje desktopowe zarówno w Javie jak i c# oraz kilku innych technologiach (niektóre projekty mają już sporo lat, więc są pisane w dość egzotycznych językach).

PHP ma dużą konkurencję jeśli chodzi o technologie (www można robić i w javie i w .net i wielu innych technologiach. Mi osobiście podoba się Grails). Popularność PHP nie wynika z tego, że jest niezastąpiony, tylko z tego, że był jednym z pierwszych - wtedy była to dobra technologia więc się upowszechnił i dlatego jest sporo tanich serwerów obsługujących php, oraz jest dużo tanich klepaczy php. Z punktu widzenia biznesowego, taniej i łatwiej jest znaleźć ekipę PHPowców niż Grailowców czy RORowców. Jakość języka ma tu niewiele do rzeczy.



Cytat
W node czy dart praktycznie jakikolwiek refactoring jest niemożliwy

Za to w javie/c# refaktoring jest znacznie prostszy niż w php. Jak w projekcie są testy jednostkowe, to w czym by nie był napisany, to będzie w miarę ok, ale gdy brak testów, to w językach kompilowanych refaktoryzacja jest znacznie łatwiejsza - przynajmniej dla mnie.


Cytat
. Ja już wolę to strtolower czy strpos, niż wkładanie wszystkiego w objekt i pisanie elaboratów jak w java

Podejrzewam, że po prostu nie potrafisz programować obiektowo, dlatego to dla Ciebie problem.

nie wydaje mi się, żeby str_len($sting) było "fajniejsze" od string.length()

jak chcesz zrobić kilka operacji stringowych to robisz tak
trim(strToLover(substr($zmienna,$parametr1,$parametr2)))

podczas gdy w javie możesz napisać:
zmienna.substr(parametr1,parametr2).toLover().trim()

Który zapis jest ładniejszy ? (to oczywiście pseudokod).

Java jest kobylasta (rozwlekła) - to fakt. O ile JVM to coś fajnego, o tyle sama java jest taka sobie w dzisiejszych czasach, szczególnie porównując do c# (gdzie są różne Taski, lambdy, extension methods czy głupie słówko "var" ) albo scali.
Natomiast rozwklekłość javy nie jest żadnym argumentem dla php, bo ten też nie jest specjalnie zwięzły jak na język skryptowy - polecam zapoznać się choćby z grails (język to groovy - skryptowa java można powiedzieć).

Cytat
Klasy niestety = narzut, referencje, problemy z porównaniem (equals() z javy tongue.gif ?). Lepiej jakby scalary miały swoje metody (były pseudo obiektami), np wszystkie str* do wywołania jako "sdfsdf"->toLower().

Akurat php jest językiem obiektowym i klasy (choćby mysqli zamiast zestawu funkcji mysql_*) istnieją, więc nie rozumiem tej obawy. Groovy o którym wspomniałem (i nie jest on wyjątkiem) jest językiem skryptowym, w pełni obiektowym i działa szybciej niż PHP. Wywołanie o którym napisałeś " "sdfsdf"->toLower() " to przecież jest właśnie obiektówka - traktowanie ciągu znaków jako obiekt - tak to działa w javie/c#. Oczywiście "pod spodem" wcale nie musi to być obiekt, kompilator/interpreter robi tak, żeby było dobrze i optymalnie. Ważne, że programista widzi kod jako obiektowy.
Z tym, że słowo "klasa" nie było tu kluczowe. Po prostu nie widzę sensu wywalania funkcji stringowych i zastępowania ich czymś innym ze względu na kompatybilność - to wszystko. Można tak rozwijać, żeby nie stracić na kompatybilności, bo wyrzucenie jakichś funkcji nie zwiększy wydajności.


PS. Ten post może wydać się "anty PHP" - W rzeczywistości nie uważam go za zły język. Tylko, że pisanie, że jest niezastąpiony, jest mało trafione. PHP się rozwija, jest coraz lepszy... ale nie on jest liderem, on tylko dzielnie goni konkurencję smile.gif
niebieskiciapek
Cytat
Za to w javie/c# refaktoring jest znacznie prostszy niż w php.

Oczywiście, dodałbym do tego jeszcze JS, chyba nie ma lepiej zaprojektowanego modelu objektowego.

Cytat
Podejrzewam, że po prostu nie potrafisz programować obiektowo, dlatego to dla Ciebie problem.

Nie, nie lubię mega rozwlekłej składni java i plików nagłówkowych w C++. To olbrzymia strata czasu, po prostu ludzie zamiast myśleć klepią mini-szablony i aby zmienić np. nazwę funkcji zmieniają jej deklarację i definicję w kilku miejscach, oraz zastanawiają się "jaka powinna być kolejność plików nagłówkowych i czego jeszcze nie włączyli". Jak małpy. Nowoczesny język nie powinien działać w ten sposób. Co do modelu objektowego w C++ czy Java - jest taki sobie, czyli ok. To biblioteka standardowa i języki są przestarzałe i gówniane po prostu (cały include-hell w C++, to nie do ogarnięcia i już dawno powinny to realizować automatyczne narzędzia)

Przykład oczywiście, żeby udowodnić postawioną tezę, która jest niewłaściwa. To przypadek szczególny. Raczej chodziło mi o crap w stylu
Kod
FileInputStream fstream = new FileInputStream("textfile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));


Zwięzłość php to co innego, ja po prostu nie lubię pisać setek linii kodu z którego nic nie wynika i nic tak na prawdę nie robi. Już wolę źle zaprojektowane listy argumentów niż pisanie za każdym razem 50 linijek tego samego kodu, żeby zrobić coś, co w normalnym języku programowania zajmuje 2.

Popularność PHP wynikła z tego, że było dużo taniej zamknąć zespół C i (prze)pisać nawet całą aplikację bo kodowanie w tym było mordęgą. Żadna obecna technologia nie przyspieszy znacząco (jeśli w ogóle) procesu tworzenia małych i średnich witryn. Gdyby w tym czasie do webdeveloperki weszła java to w tym segmencie podzieliłaby losy C, tak samo jak stało się z Perlem.
peter13135
Cytat
Nie, nie lubię mega rozwlekłej składni java i plików nagłówkowych w C++. To olbrzymia strata czasu, po prostu ludzie zamiast myśleć klepią mini-szablony i aby zmienić np. nazwę funkcji zmieniają jej deklarację i definicję w kilku miejscach, oraz zastanawiają się "jaka powinna być kolejność plików nagłówkowych i czego jeszcze nie włączyli". Jak małpy. Nowoczesny język nie powinien działać w ten sposób. Co do modelu objektowego w C++ czy Java - jest taki sobie, czyli ok. To biblioteka standardowa i języki są przestarzałe i gówniane po prostu (cały include-hell w C++, to nie do ogarnięcia i już dawno powinny to realizować automatyczne narzędzia)

Te zarzuty odnoszą się do c++, a nie do javy. W netbeansie klikam na zmienną/metodę/klasę, następnie ctrl+R i mogę zmieniać nazwę metody (zmieni się jej deklaracja i wywołania). W c# + visual studio jest podobnie, tylko, że pod klawiszem f2 smile.gif

Cytat
Zwięzłość php to co innego, ja po prostu nie lubię pisać setek linii kodu z którego nic nie wynika i nic tak na prawdę nie robi. Już wolę źle zaprojektowane listy argumentów niż pisanie za każdym razem 50 linijek tego samego kodu, żeby zrobić coś, co w normalnym języku programowania zajmuje 2.

Skoro nie znasz snippetów (skrótów klawiszowych w ide, które generują kod) to sobie pisz cały kod z palca smile.gif
Poza tym... ja się w zupełności zgadzam z tym, że java jest rozwlekła, więc tutaj mamy zdanie takie same. Co więc chcesz mi udowodnić ? PHP jest ciut mniej rozwlekły niż java, choćby przez to, że jest dynamicznie typowany, więc wiadomo, że mniej pisania, natomiast ma to też swoje wady. Zarówno java ma swoje lepsze odpowiedniki (scala, c#) jak i PHP (groovy i pewnie sporo więcej), a popularność tych "gorszych" czyli php i java wynika z "siły bezwładności".
PS. poproszę o przykład 2 linijek kodu normalnym języku i odpowiednik 50 linijek w "nienormalnym" smile.gif.

Cytat
Popularność PHP wynikła z tego, że było dużo taniej zamknąć zespół C i (prze)pisać nawet całą aplikację bo kodowanie w tym było mordęgą. Żadna obecna technologia nie przyspieszy znacząco (jeśli w ogóle) procesu tworzenia małych i średnich witryn. Gdyby w tym czasie do webdeveloperki weszła java to w tym segmencie podzieliłaby losy C, tak samo jak stało się z Perlem.

No i tutaj też nie wiem co chcesz mi powiedzieć - w poprzednim poście pisałem, że PHP był dobry w swoim czasie (gdy konkurencją do tworzenia był między innymi C). Ale teraz tych jezyków skryptowych dynamicznie typowanych jest dosć sporo i wśród nich php nie wyróżnia się nowoczesnością (zwięzłością i czytelnością kodu, wydajnością interpreterów itp.). Czyli pisanie w PHP nie jest już takie wydajne jak kiedyś (biorąc pod uwagę konkurencję), ale nadal jest bardzo tanie i powszechne (pełno programistów gotowych klepać kod za miske zupy), dlatego z punku widzenia biznesowego PHP to dobry wybór do robienia stron - nijak to nie świadczy o jakości języka.


BTW - Co do rozwlekłości - mam wrażenie, że dla Ciebie słówko "int" przed zmienną to rozwlekłość - dla mnie to przydatna informacja smile.gif Za to w PHP są dolarki, które nie mówiąc nic smile.gif

semafor1985
Nie będę zaczynał nowego wątku skoro nazwa tematu idealnie się nadaje.
Jako że głosowanie już zakończone (i przesądzone)

https://wiki.php.net/rfc/abstract_syntax_tree

chciałbym się zapytać co właściwie wnosi do "drzewo" do PHP7? Przeczytałem i zrozumiałem co to jest "drzewo składniowe" ale chciałby się dowiedzieć
jak to zmieni pisanie kodu w PHP7 z punktu widzenia przeciętnego użytkownika? Co będzie inaczej? ogólnie o co cho?!
mrc
Myślę, że chodzi o sam algorytm analizy kodu, np. Abstract Syntax Tree - składnia języka może zostać ta sama.
viking
A w międzyczasie pojawiło się 5.6. Fajnie że wreszcie można operować na stałych i "normalny" operator **.
niebieskiciapek
Cytat
Skoro nie znasz snippetów (skrótów klawiszowych w ide, które generują kod) to sobie pisz cały kod z palca

15 lat temu robiłem coś takiego, później odkryłem coś co się nazywa "system szablonów". Jakoś nie za bardzo chce mi się wracać do tego, jak pisałem kod 2 dekady temu wink.gif Jeśli potrzeba snippetów, to sorry design takiego języka programowania jest po prostu kiepski, wolę pisać w czymś co jest zaprojektowane tak, że nie wymaga takiego "dłubania". Bo to tylko poziom wyżej od C i plików nagłówkowych. A kompilatory i języki programowania trochę się rozwinęły od tego czasu wink.gif
peter13135
Chyba mówimy o czymś innym....

Nie wiem o czym Ty mówisz, ale to o czym ja mówię, to nie jest system szablonów i nie ma nic wspólnego z "include". Snippety nie są częścią języka programowania, a IDE. Przyspieszają one tworzenie kodu - zamiast pisać z palca for'a, foreach'a , bloki try catch, czy zwykłą klasę, możesz użyć snippetów.


W Visual studio wygląda to tak:

Prosty bajer, a jednak mocno przyspiesza pracę.

BTW. c# jest mocno zwięzły język. W połączeniu z Visual Studio, które podpowiada i generuje wiele kodu piszę się w nim bardzo sprawnie. Moim zdaniem bije PHP na głowę.

Pisząc o snippetach, raczej miałem na myśli, że to jest to sposób na obejście rozwlekłości języka - jako rozwlekły uważam np. javę - w kodzie muszą być gettery i settery, nawet jeśli są "standardowe". Do wersji 1.6 trzeba było pisać takie rzeczy:
Cytat
Map<string,JakasKlasaGeneryczna<KlasaBedacaParametremKlasyGenerycznej>> blabla = new HashMap<string,JakasKlasaGeneryczna<KlasaBedacaParametremKlasyGenerycznej>>();

*Teraz można użyć diamond operator'a w javie, a w c# jest słówko "var"
No i właśnie obejściem, przed tą rozwlekłością są skróty klawiatorowe, które generują "nic nie wnoszący kod".
Czyli w javie, możesz napisać tak:
Cytat
new HashMap<string,JakasKlasaGeneryczna<KlasaBedacaParametremKlasyGenerycznej>>();

Następnie (w NetBeansie) wybrać opcję "assign to value" i wtedy otrzymasz przypisanie do zmiennej podobne do tego pare linijek wyżej.
Zamiast pisać z palca gettery i settera, można skorzystać z opcji "insert getters i setters" - wybiera się, dla których zmiennych mają zostać wygenerowane i to wszystko.
Także, snippety mogą być z jednej strony ułatwieniem - no bo w przypadku pętli, warunków, bloków try/catch czy lock (w c#) trudno się przyczepić do rozwlekłości języka, a z drugiej strony próbą obejścia rozwklekłości języka - i to dotyczy javy i PHP wink.gif
Przypominam, że PHP, też nie ma propercji, na wzór scali/c# i trzeba gettery/settery pisać z palca - albo je generować (np. Symphony framework - tam można generować całe encje, albo gettery/settery w konsoli).

Cytat
15 lat temu robiłem coś takiego

Nie bierz tego do siebie, bo raczej nie lubię używać "docinek personalnych", ale biorąc pod uwagę Twoje posty to wydawało mi się, że 15 lat temu skakałeś z dywanu na podłogę, a nie programowałeś, albo klepiesz cały czas w jednej technologii i nie masz rozeznania co się dzieje w branży.
Uprzedzając pytanie - ja 15 lat temu skakałem z krawężnika na ulicę.
pedro84
@peter13135 Symfony blink.gif Co do meritum, zdecydowanie się zgadzam.
niebieskiciapek
Właśnie o tym mówię, takie "szablony" wbudowane w IDE, macromedia dreamweaver to miał, tylko pod web. Z resztą generowany kod był koszmarny.

Nie wiem, skąd wziąłeś te "personalne docinki" po prostu moim zdaniem design całego języka to drewno bo tak pisałem 15 lat temu i tyle. To strata czasu. To, że IDE dodaje snippety nie czyni języka mniej drewnianym. To że napiszesz 10 setterów w 2 minuty a nie w 5 niczego nie zmienia bo dalej nic nie jest zrobione a ty zamiast myśleć musisz pamiętać jakieś dziwne konstrukty.

Po co w roku 2014 uczyć się czegoś tak archaicznego? Przeciętna osoba pisząca w PHP w życiu tego nie ogarnie, z resztą nie wiem po co. Ja rozumiem że w roku 2004 nie było za bardzo wyboru...

Wolę modele obiektowe golang i javascript, OOP PHP przynajmniej nie jest taki "ciężki" i to, że jest dość okrojony tylko mu wyszło na dobre, z resztą model OOP Java też jest okrojony względem C++. Nie wiem, może C#, D i języki google jeszcze jakoś rokują, bo nowe spec do C++ są jeszcze większe zamiast cały ten burdel uporządkować i okroić.
pedro84
Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
Właśnie o tym mówię, takie "szablony" wbudowane w IDE, macromedia dreamweaver to miał, tylko pod web. Z resztą generowany kod był koszmarny.

Coś mi się wydaje, że Ty mówisz o czymś innym.

Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
Nie wiem, skąd wziąłeś te "personalne docinki"

Czytanie ze zrozumieniem się kłania, bo Ci lekko pojechał, a Ty nawet tego nie zauważyłeś...

Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
po prostu moim zdaniem design całego języka to drewno bo tak pisałem 15 lat temu i tyle. To strata czasu. To, że IDE dodaje snippety nie czyni języka mniej drewnianym. To że napiszesz 10 setterów w 2 minuty a nie w 5 niczego nie zmienia bo dalej nic nie jest zrobione a ty zamiast myśleć musisz pamiętać jakieś dziwne konstrukty.

Generanie, w programowaniu i większości języków, musisz o czymś pamiętać.

Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
Po co w roku 2014 uczyć się czegoś tak archaicznego? Przeciętna osoba pisząca w PHP w życiu tego nie ogarnie, z resztą nie wiem po co. Ja rozumiem że w roku 2004 nie było za bardzo wyboru...

Archaicznego? To znaczy?

Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
Wolę modele obiektowe golang i javascript, OOP PHP przynajmniej nie jest taki "ciężki" i to, że jest dość okrojony tylko mu wyszło na dobre, z resztą model OOP Java też jest okrojony względem C++. Nie wiem, może C#, D i języki google jeszcze jakoś rokują, bo nowe spec do C++ są jeszcze większe zamiast cały ten burdel uporządkować i okroić.

Javascript biggrin.gif
peter13135
Cytat
Po co w roku 2014 uczyć się czegoś tak archaicznego?

1. Nie bardzo rozumiem. Jaki język uważasz za archaiczny ? Może c# bo VS ma snippety do niego ? Lkingsmiley.png
2. PHP jest Twoim zdaniem nowoczesny i warto się go uczyć ? Tak się składa, że frameworki PHP (symfony,Yii) mają narzędzia do generowania kodu (choćby wspomniane gettery i settery w encjach), więc nie rozumiem, czemu analogiczne narzędzia do do innych jęzków są złe ? Dla przykładu grails jest pozbawiony tych wad - ma propercje analogiczne do c#.
3. Tak naprawdę dla większości, to priorytetem w nauce języka są możliwości znalezienia pracy. Mi podoba się np. scala, ale co z tego skoro na rynku "króluje" c# i java ? Z tych dwóch bardziej mi się podoba c# (bo jest zwięzła, ma dobre IDE, ma elementy języka funkcyjnego co przydaje się w pracy z kolekcjami itd.), więc pracuję jako programista c#. W Scali roboty raczej nie znajdę. Natomiast gdyby za kodzenie w javie płacili by mi więcej, to pewnie bym się na nią przerzucił, mimo, że jak wspomniałem c# mi się bardziej podoba.
Tak więc, argument nietrafiony.

Cytat
Właśnie o tym mówię, takie "szablony" wbudowane w IDE, macromedia dreamweaver to miał, tylko pod web. Z resztą generowany kod był koszmarny.

Ok, niech Ci będzie. Nie korzystałem z tego, to nie wiem. Tak czy inaczej, nie o tym mówię.
Powiedz co Ci nie pasuje w snippetach o których mówię (np. z visual studio, czy z netbeansa).

Cytat
To że napiszesz 10 setterów w 2 minuty a nie w 5 niczego nie zmienia

Co za brednie.
Wygenerowanie 10 setterów (jak już są same zmienne), zajmie mniej niż 2 minuty.
Cytat
bo dalej nic nie jest zrobione

Ale za to w te zaoszczędzone kilka minut (według Twoich danych - 3 minuty) możesz napisać kawałek jakiejś logiki biznesowej.
Cytat
a ty zamiast myśleć musisz pamiętać jakieś dziwne konstrukty

Nic nie musisz pamiętać. Jak nie chcesz używać snippetów, to nie musisz ich używać. Wszystko można pisać z palca.
Daimos
Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
Właśnie o tym mówię, takie "szablony" wbudowane w IDE, macromedia dreamweaver to miał, tylko pod web. Z resztą generowany kod był koszmarny.

Podpowiedzi i do tego konfigurowalne to miał?
Nie rozumiem, ale najlepsze, że sam nie wiesz o czym piszesz. Ja np. mam podpowiedzi również krótkie, typu:
t + TAB -> $this->
a podpowiedzi standardowe w netbeansie typu iter, tryc itp zaoszczędzają i tworzą taki kod, jaki sobie życzę.

Cytat(niebieskiciapek @ 8.09.2014, 21:24:07 ) *
Wolę modele obiektowe golang i javascript...


Chciałem to skomentować, ale wyżej widzę już ktoś miał z tego ubaw, więc nie umknęło wink.gif
Forti
https://wiki.php.net/rfc/isset_ternary

aż dziw, że tego szybciej nie zaimplementowali.

https://wiki.php.net/rfc/scalar_type_hints_..._float_behavior

Ścisłe typowanie zmiennych wink.gif
!*!
Cytat(Forti @ 17.03.2015, 09:40:55 ) *
https://wiki.php.net/rfc/isset_ternary

aż dziw, że tego szybciej nie zaimplementowali.

https://wiki.php.net/rfc/scalar_type_hints_..._float_behavior

Ścisłe typowanie zmiennych ;)


Kojarzysz może gdzie podział się wykres maruderów? Kiedyś było coś takiego na starej wersji, gdzie wskazywany był nawet lider tych co głosowali na "nie".
Forti
hm.. nie wiem do końca co masz na myśli, jednak lista głosujących tak/nie jest u dołu strony.
!*!
Tak, ale dotyczy konkretnych przypadków, a mi chodzi o zestawienie na przestrzeni miesięcy/lat.
com
To dopiero w zeszlym roku zaproponowano wiec nie mial kto marudzic itak o dziwo przeszlo bo autor porzucil php smile.gif
Forti
Cytat
To dopiero w zeszlym roku zaproponowano wiec nie mial kto marudzic itak o dziwo przeszlo bo autor porzucil php smile.gif


Z tego co wiem to nie autor wink.gif
com
Autor pomyslu implementacji tego do php biggrin.gif czepiasz sie tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.