Czy PHP wymiera?

Wątek przeniesiony 2016-08-24 10:10 z Edukacja przez aurel.

axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Warszawa
  • Postów:2251
0

Hmm swoją pracę rozpocząlem w phpie jako totalny świeżak. Nie wiedziałem nic, słyszałem tylko wszędzie jaki to php jest fuj i w ogóle niedorozwinięty. Programuje w tym ponad 5 lat i wg mnie php'a czeka jeszcze świetlana przyszłość. Dlaczego? Ano dlatego że da się w nim pisać kod dobrej jakości. Popieram że php miał i nadal ma pewne bolączki - niespójność nazewnictwa funkcji,kolejności parametrów i odmienne porównywanie wartości różnego typu. Ale... od php7 przecież to się zmienia. Aplikacja która obecnie utrzymujemy po przejściu na php7 zaliczyła wzrost wydajności o 100% (albo o 50% zależy jak patrzeć :P). Dorzućmy do tego tdd, psr7, ww. symfony i inne takie - dostaniemy wtedy obraz bardzo fajnego narzędzia. Do sektora bankowego php na pewno nie trafi, ale do web-dev'u jest jak znalazł. No i taki tescik wynalazlem - https://blog.famzah.net/2016/02/09/cpp-vs-python-vs-perl-vs-php-performance-benchmark-2016/
Od razu uprzedzam ze to pierwszy z brzegu na frazę "php7 vs java" w google, więc odnoszę się do tego tylko pobieżnie.

vpiotr
ten test to jakaś totalna bzdura. Java jest porównywalna w wydajności z C a nie 12x wolniejsza, chyba że ktoś liczył czas podniesienia JVM. Poza tym autor nie wiem po co użył ArrayList (i autoboxingu) skoro wie jaki będzie rozmiar tablicy wynikowej.
axelbest
Dlatego mowilem ze to pierwszy test z brzegu, a nie profesjonalny test autoryzowany przeze mnie :)
forsberg
Java nigdy nie będzie porównywalna z C, to po prostu nie możliwe, tak samo jak język interpretowany nigdy nie będzie mógł równać się z Javą (językiem kompilowanym). ;P
0

A W Jakich Frameworkach piszecie? Bo Probowalem Laravel i BLEEEEEEEEEEEEEEEE......... Symfony 2 jest calkiem przyjemne

axelbest
Zend 1 - na tyle stuningowany paczkami composerowymi i kodowany zgodnie z solid, dry, kiss itp itd ze kod jest prawie niezalazny od frameworka. Panuje ostra separacja modeli, mapperow, widokow, helperow, serwisow, assety sa ladowane per modul...masa tego
axelbest
No i tak ... symfony/zend 3 sa bardzo przyjemne. Polecam.
0

ten test to jakaś totalna bzdura. Java jest porównywalna w wydajności z C a nie 12x wolniejsza, chyba że ktoś liczył czas podniesienia JVM. Poza tym autor nie wiem po co użył ArrayList (i autoboxingu) skoro wie jaki będzie rozmiar tablicy wynikowej. - vpiotr dzisiaj, 02:26

Porównywalna wydajnością z C ? Z tego co pamiętam to zazwyczaj mieści się w C^2, nawet jak ją mocno podrasowali nie porównywałbym jej z C ..

1

Kwestia performancu w obecnych czasach nie jest już tak kluczowa. Często dana technologia ma 'wystarczający' performance.

forsberg
Zgadza się. Oczywiście jeszcze zależy od charakteru aplikacji, ale w większości przypadków wąskim gardłem są RDBMS i okolice, to tak w skrócie.
no_solution_found
  • Rejestracja:prawie 18 lat
  • Ostatnio:6 dni
1

php nie wymiera, można powiedzieć, że dzięki Symfony jest przeżywa coś w rodzaju renesansu. Ja słyszałem jakieś 2-3 lata temu, że java umiera. Sprawdziło się?


Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 4 godziny
0
Wielki Lis napisał(a):

ten test to jakaś totalna bzdura. Java jest porównywalna w wydajności z C a nie 12x wolniejsza, chyba że ktoś liczył czas podniesienia JVM. Poza tym autor nie wiem po co użył ArrayList (i autoboxingu) skoro wie jaki będzie rozmiar tablicy wynikowej. - vpiotr dzisiaj, 02:26

Porównywalna wydajnością z C ? Z tego co pamiętam to zazwyczaj mieści się w C^2, nawet jak ją mocno podrasowali nie porównywałbym jej z C ..

Ze 2x wolniejsza od C w microbenchmarkach, ale za to rzędy wielkości szybsza niż czysty Python, PHP czy nawet Erlang.
Ten benchmark co podałeś jest pisany przez jednego gościa przez co jest wątpliwej jakości, bo ciężko być orłem z kilkunastu języków jednocześnie. Tutaj: http://benchmarksgame.alioth.debian.org/u64q/java.html jest benchmark, gdzie programy testowe są podsyłane przez wielu ludzi i jest zdecydowanie bardziej reprezentatywny.

Zamiast mierzyć wydajność języków w abstrakcyjnych zadaniach można zmierzyć je w tym co chcemy robić - serwowaniu zawartości z serwera webowego. Tego typu benchmarki są tutaj: https://www.techempower.com/benchmarks/

PS:
Zresztą, gdy ten gość z famzah.net zrobił wersję, która nie testuje szybkości boxingu w Javie to wyszło mu, że Java jest zaledwie 27% wolniejsza od C++. A przy tym trzeba pamiętać, że C++ nie sprawdza indeksów tablic ani null pointerów (tzn da się to zrobić w C++, ale trzeba robić to explicite; Java robi to zawsze).


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
Zobacz pozostałe 4 komentarze
KR
No jasne, bo malloc/free lub new/delete to w C++ nie zabiera czasu procesora? Można w Javie pisać kod tak, że GC się nie uruchomi (albo na tyle rzadko, że nie będzie to zauważalne), tak samo jak można pisać w C++ bez używania new/delete.
vpiotr
@Wibowit: no jakie "zawsze"? Przecież podałem przykład jak to rozwiązuje HotSpot dla pętli. Są zakresy pętli gdzie NIE jest generowany bounds check. To że przed czy po i tak jest taki check robiony to już rzecz wtórna.
forsberg
@Krolik To fakt. Ale miejscami to prawdziwa mordęga tak pisać za każdym razem. Rozumiem optymalizację na jakiegoś Androida czy WinPhone, bo też np. używam tych samych zmiennych, zamiast ciągle "new", kiedy trzeba. Java została zaprojektowana jako język czysto obiektowy, a tymczasem na poziomie niskim okazuje się, że trzeba jednak pamiętać o tych sprawach - o ile trzeba. Bo jak performance doesn't matter, to wolę jednak liczyć na GC.
Wibowit
@vpiotr sprawdzanie zakresu jest robione jednorazowo dla pewnego zakresu tablicy. Z tym, że sprawdzanie zakresu jest robione zawsze to chodzi mi o to, że nie może być sytuacji, w której JVM przepuści dostęp do tablicy spoza dopuszczalnego zakresu. To ile robi porównań indeksów nie ma znaczenia. Znaczenie ma to, że zawsze odwołanie do tablicy się powodzi jeśli indeks jest między 0-em (włącznie), a długością tablicy (wyłącznie), a jeśli jest poza tym zakresem to zawsze dostaniemy ArrayOutOfBoundsException.
vpiotr
@Wibowit: a ja miałem wrażenie że w tym poście chodziło o wydajność (czyli o to ile robi porównań indeksów). BTW, z ciekawości zrobiłem własną wersję tego testu - 4x przyspieszyło (fork na github). Pewnie można by jeszcze to wydajniej zrobić.
2

forsberg
  • Rejestracja:prawie 18 lat
  • Ostatnio:około rok
  • Lokalizacja:Trójmiasto
0

Co do porównań PHP (i innych języków) z Javą, nb. dwóch dziadków lat 90., można zauważyć jeszcze następującą kwestię: w JEE występuje ciągle sporo narzędzi generalnie uważanych za profesjonalne, i z reguły są najbardziej "mature" na rynku, typu jakieś kolejkowanie, serwery aplikacji itd. I to jeden z powodów, dla którego Java moim zdaniem nie zniknie w przeciągu co najmniej 10 lat. Tworzenie takich narzędzi, zyskiwanie popularności, rozwój (z reguły powolny), testowanie przez społeczność itd. zajmuje 5+ lat (5 lat to i tak malutko). I tu faktycznie jako platforma (nie - język) JEE się broni.

Nie znaczy to jednak, że tak pozostanie zawsze. Inne popularne technologie przejmują rozwiązania z tych, w których się sprawdziły (np. choćby Symfony, który dosłownie bierze całe specyfikacje JSR jak Validation https://jcp.org/en/jsr/detail?id=303 czy też rozwiązania bezpośrednio ze Srping, Django, RoR i innych, albo choćby Java z reczami typu Groovy czy Jython).

Inna sprawa, że dzisiaj można wykorzystywać łatwo wiele różnych technologii korzystając generalnie z innej, więc droga w PHP czy innych językach do narzędzi typu RabbitMQ albo nawet napisanych w C stoi otworem.

Moim zdaniem jedną z najlepszych dróg obrał Facebook: zaczął od PHP, a rzeczy, które wymagały największej optymalizacji, teraz są po stronie C - najszybszego języka wysokiego (jeszcze? bo to podobno ostatnio kontrowersyjna sprawa...) poziomu. W ten sposób stopniowo można rozbudowywać każdą web-aplikację / portal. Branie więc Javy do takich celów często mija się z celem.

KR
Facebook to akurat sobie trochę strzelił w stopę wybierając PHP, ale nikt wtedy nie przewidywał takiej skali. Zbudowanie serwisu od początku na Javie lub .NET sumarycznie pochłonęłoby znacznie mniej czasu i energii, niż pisanie własnego translatora PHP do C++, który ostatecznie i tak nie ma szans być szybszy niż JVM / CLR. Teraz jednak łatwiej było napisać translator i przyspieszać PHP, niż przepisywać cały serwis na nowo.
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0
Maximus Decimus meri napisał(a):

A W Jakich Frameworkach piszecie? Bo Probowalem Laravel i BLEEEEEEEEEEEEEEEE......... Symfony 2 jest calkiem przyjemne

Ale konkretnie. Co Ci się takiego nie podoba w tym Laravelu? I która wersja? 5x czy 4x bo to też duża różnica.

Na 99%, zakładając że masz wybór a nie narzucony framework, wybierzesz do realizacji dowolnej, nawet małej aplikacji typu prosty blog ten framework, który Tobie się najbardziej podoba, czyli jak piszesz Symfony. Albo dlatego że inni to polecają (ale to że go wybrałeś to też mogło być wynikiem pewnej reklamy społeczności i programistów). A prawda jest taka, że w Laravelu pewne rzeczy się robi łatwiej i szybciej i jest taki zakres zastosowań, gdzie będzie pod pewnymi względami lepszy od Symfony i na odwrót. Miej to na względzie, że technologie dobiera się do konkretnego zastosowania a nie dlatego, że coś Ci się podoba. Możliwe że Laravel jest mocniejszy w realizacji startupów, gdzie chodzi o to żeby szybko napisać, dzięki czemu biznes może szybciej wystartować, tak jak to oferują Railsy albo DJANGO. Są więc pewne zalety ale to wszystko kosztem czegoś.

forsberg
To prawda, ale nie do końca z tym "technologie dobiera się do konkretnego zastosowania", chyba, że zaczynasz na czysto jako manager, który nie zna żadnej platformy albo wszystko mu jedno. Często są pewne narzuty, np. jakaś technologia, z którą nowy system ma się komunikować, jest napisana już w Javie (więc po co używać jakichś pośrednich protokołów, skoro można bezpośrednio? a SOAP czy REST w razie potrzeby będzie można później dopisać) czy też np. korpo czy bank chce mieć "czystość technologiczną" lub jednego dostawcę. To ostatnie bywa często dużym plusem, z doświadczenia.
forsberg
Symfony akurat jest często używany jako baza do innych systemów ze wzg. na swoją przejrzystą budowę modularną, dobrym przykładem jest EZ Platform lub ORO CRM, które są normalnie aplikacjami Symfony. No i oczywiście jest "frameworkowe podejści", np. Drupal, który już nie jest aplikacją Symfony, albo jak Laravel - bazują na paru komponentach Symfony.
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0
Maximus Decimus meri napisał(a):

A W Jakich Frameworkach piszecie? Bo Probowalem Laravel i BLEEEEEEEEEEEEEEEE......... Symfony 2 jest calkiem przyjemne

Na tyle bleee że coraz więcej ofert jest własnie w nim. Firma w której pracuje 1,5 roku przeszła na laravela i cały czas szukamy porządnych devów. I co powiem w laravela bardzo płynnie wszedłem (zaczynaliśmy od 4.2) I na prawde to jest bardzo przyjemny framework tylko trzeba poczytać, a nie robić apke nic o nim nie wiedząc + niestety ale bardzo wiele tutoriali jest źle napisanych. Należy korzystać z oficjalnej dokumentacji oraz z kursów samych twórców laravela oraz z ich forum to się bedzie wiedział jak robić łatwo, szybko, przyjemnie i elegancko :)


It's All About the Game.
forsberg
To co wcześniej używaliście, i dlaczego okazało się to złe?
mr_jaro
@forsberg Wcześniej były projekty cmsowe głównie wordpress a rozbudowane projekty na zendzie.
msm
Administrator
  • Rejestracja:prawie 16 lat
  • Ostatnio:4 miesiące
3

uwaga, post stronniczy. PHP nie jest moim ulubionym językiem.

jest też "zła tradycja", mianowicie wordpress - sam się zastanawiam czy wordpress zrobił więcej szkody czy pożytku. Niby wiele rzeczy uprościł, ale pokazał, że "PHP" to prosty i prymitywny język dzięki któremu każdy może postawić strono-bloga w 15 minut... no i za tym poszedł zły wizerunek "języka prostackiego", co nie jest prawdą

A nieprawda.
PHP od początku było językiem prostackim, gdy powstał Wordpress został napisany prostacko, i PHP teraz jest językiem prostackim do którego frameworki jak Laravel doszywają nogi żeby zrobić z niego ośmiornicę (parafrazując wiadomo kogo).

PHP to w zasadzie przerośnięty system szablonów. Bardzo specjalizowany. Całe wykonanie programu w PHP to domyślnie wypisywanie na ekran. Żeby program w PHP w ogóle zaczął się wykonywać, trzeba to zmienić i dopisać <?php na początku. Nie kojarzę ani jednego innego popularnego języka który by tak działał. A początki PHP to statyczny HTML + dynamiczne elementy. Żeby stworzyć jakiś layout na stronie, były dwie opcje:

  • tworzyło się "begin_page.php" i "end_page.php", i każdą stronę zaczynało i kończyło odpowiednim includem
  • tworzyło się "index.php" który includował plik z GETa (tzn. index.php?page=about.php etc) - witajcie LFI, RFI i inne wesołe vulny.

Miało to jedną dużą zaletę - każdy mógł stworzyć swoją dynamiczną stronę.
Miało to też jedną dużą wadę - każdy mógł stworzyć swoją dynamiczną stronę.

Każdy człowiek mógł kupić książkę "od zera do PHP kodera" czy podobną, i zacząć tworzyć strony, które jakoś tam działały, a tak naprawdę pod spodem były splątamym potworem spaghetti, trzymającym się jakoś tylko dzięki kilometrom taśmy i ha
cków.

No i PHP to obiektywnie język, który roi się od WTFów. Z równie popularnych języków, może z nim konkurować chyba tylko javascript.

Żeby nie było że tylko narzekam.

Z drugiej strony, tyle stron stoi na PHP, że programistów PHP będzie potrzeba jeszcze bardzo, bardzo długo. Pracy w nim na pewno nie zabraknie. Ma renomę języka w którym mało płacą, ale moim zdaniem to dlatego, że sporo programistów PHP to poczatkujący piszący proste stronki, albo robiąca freelancing dla januszy biznesu, albo klepiąca moduły do wordpressa. W momencie kiedy ktoś faktycznie zna język dobrze, to zarobi nie mniej niż w innych językach (zresztą, tak jest wszędzie).

W dodatku słyszałem dobre rzeczy o PHP7. Może to takie odświeżenie dla php jak ES6 dla javascriptu :P. Zobaczymy, na razie nie miałem styczności za bardzo.

ten test to jakaś totalna bzdura. Java jest porównywalna w wydajności z C a nie 12x wolniejsza, chyba że ktoś liczył czas podniesienia JVM. Poza tym autor nie wiem po co użył ArrayList (i autoboxingu) skoro wie jaki będzie rozmiar tablicy wynikowej. - vpiotr dzisiaj, 02:26

Odnośnie offtopu o testach wydajności - jestem w stanie spokojnie stworzyć benchmark który "wykaże" że java jest np. 30% szybsza od C. A większość benchmarków jest tworzona przez ludzi którzy nie mają pojęcia ani o języku który benchmarkują, ani o benchmarkowaniu.

msm
Sorry za ścianę tekstu. Nie wiem jak to się dzieje że zaczynam pisać posta, przeklejam go na forum, a tu nagle 100 linijek :<.
flowCRANE
@msm - to w czym Ty piszesz posty, że musisz je przeklejać?
msm
@furious programming - co to za pytanie? Oczywiście że w vimie :P.
forsberg
@msm No widzę, że info o PHP masz sprzed wielu lat ;) Nie wiem jak Laravel, ale np. w Symfony to już zupełnie inny świat, niż wspomniane "include header" i "include footer" - nic z tych rzeczy.
msm
@forsberg - nie no, przecież wiem jak wyglądają nowoczesne frameworki PHP i wiem że nikt sensowny nie tworzy tak dzisiaj niczego w PHP. AFAIR starałem się napisać posta na zasadzie "historia PHP jest ciemna, i jest masa spaghetti codu do utrzymania, ale jest światło na horyzoncie", oraz "jeśli będziesz dobrym programistą, to zarobisz dobrze nawet w COBOLu". Poza tym, że prywatnie nie lubię tego języka, czego nie kryję (i że to głęboko w środku dalej system szablonów). No ale jak teraz czytam tego posta to faktycznie wyszedł trochę rant :/.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 4 godziny
3

PHP zaczynało jako zestaw programików do obsługi strony domowej jednego kolesia w czasach, gdy Internet był zabawką dla nerdów. Nie nastraja to optymistycznie.

Jest o tym wpis na Wikipedii:

PHP development began in 1995 when Rasmus Lerdorf wrote several Common Gateway Interface (CGI) programs in C,[10][11][12] which he used to maintain his personal homepage. He extended them to work with web forms and to communicate with databases, and called this implementation "Personal Home Page/Forms Interpreter" or PHP/FI.
(...)
The syntax resembled that of Perl but was simpler, more limited and less consistent.[5]

Lerdorf did not intend the early PHP to become a new programming language, but it grew organically, with Lerdorf noting in retrospect: "I don’t know how to stop it, there was never any intent to write a programming language […] I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way."[15]

Dalszego komentarza chyba nie trzeba.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

No to co wybrać, chcę tworzyć jak najprościej czaty, serwisy, porównywarki cenowe, jak nie PHP to co? Pisanie większych rzeczy w JS mnie przeraża, a w Javie przerasta.

ZE
Do pisania real-time polecany jest node.js
forsberg
PHP + dobry framework does the thing, a jak nie, to zawsze możesz wziąć Python (raczej niż Ruby).
msm
Administrator
  • Rejestracja:prawie 16 lat
  • Ostatnio:4 miesiące
2

@Wibowit - No generalnie o tym pisałem - założenia projektowe PHP to na początku zdecydowanie nie było "poważny język do tworzenia stron".

Przykłady na to można mnożyć dziesiątkami. Na przykład, dlaczego najstarsze funkcje PHP się nazywają tak jak nazywają? Bo funkcją hashującą używaną do hashowania nazw funkcji (do lookupu podczas interpretowania) było... strlen. Więc jeśli było np. za mało funkcji z nazwą o długości 11 znaków, to nazwa nowo dodawanej funkcji powinna mieć właśnie tyle znaków (ja tu nawet nie żartuję).

Samo rozwinięcie PHP to też ciekawa historia - oryginalnie znaczyło to "Personal Home Page", ale w pewnym momencie tłumaczenie zostało zmienione na "PHP: Hypertext Processor". Nie jestem teraz pewny czy ostatecznie w takim razie PHP rozwija się do "Personal Home Page: Hypertext Processor", czy "(((((...): Hypertext Processor): Hypertext Processor): Hypertext Processor): Hypertext Processor)" :P

edytowany 1x, ostatnio: msm
drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0

Wydaje mi się że pewne cechy przypisuje się PHP niesłusznie (tu biorę pod uwagę PHP od 5.3 w górę oraz to co oferują współczesne frameworki) albo przesadnie (nie wiem, może wielu się zatrzymało gdzieś z 10 czy 15 lat temu na tych systemach szablonów i Personal Home Page albo nadal klepią w tym starym stylu :-) ) ale bez przesady. To może być także PR, tu opinie są też ważne a można zarówno zniszczyć albo osłabić dobry produkt, jak i wypromować syf :-)

Teraz jak ktoś jest specjalistą Symfony, Laravel i innych frameworków a już tym bardziej jest w stanie napisać swój, wcale nie gorszy i dobrze orientuje się w złożonych serwisach na tym opartych, to z pewnością na słabe zarobki nie będzie narzekał. Oczywiście można się również nieźle obłowić (chyba na swoim), celując w strony na WP czy Drupalu (są poważne strony, które na tym stoją) albo Magento czy inne tego typu rzeczy.

I co z tego że próg wejścia w PHP jest niski? Ale już wejście w Symfony a nawet Laravel (mówię o tym żeby poprawnie tego używać) to nie lada wyzwanie, stawiam że co najmniej rok, jeśli nie więcej. Niektórzy twierdzą, że bez fundamentalnej znajomości PHP można zaczynać od razu od frameworków, tutaj zdania są podzielone, chociaż jak najbardziej można poznać PHP od fundamentalnej strony przeglądając kod i jak to jest rozwiązane we frameworkach. Pytanie czy to dobre podejście?

Nie wiem co w dalszej perspektywie będzie z tym Laravelem, możliwe że to co teraz jest to jakaś moda, nie wiem tak jak to było z Kohaną (chyba 2.x), którą to podobno też Laravel zniszczył. Możliwe że hejt na niego jest związany raczej z obawami że wchodzi na rynek i jest walka, możliwe również że za X lat zostanie zniszczony przez coś innego i stanie się także "martwy" jak Kohana albo używany przez jakąś wąską społeczność. Z tych powodów można mieć dylemat: Symfony czy Laravel.

Zobacz pozostałe 5 komentarzy
mr_jaro
@forsberg laravel wyszedł z symfony, niektóre rzeczy po nim dziedziczy :)
forsberg
@mr_jaro I know :) Ale widocznie chcieli niektóre zrobić po swojemu, a teraz coraz więcej przejmują z SF, jak Doctrine czy ww. DI(C?). Nawiasem przy okazji, czy ten DI to działa w Laravelu normalnie, tj. na zasadzie kontenera usług?
forsberg
Ok. Czyli też jest identycznie, prawdopodobnie czytali post Fabiena Potencier (twórcy Sensio Labs i Symfony), dali identyczny przykład z zarządzania zależnościami. A gdzie mogę poczytać o tym, gdzie są pliki konfigu i jak się konfiguruje framework?
mr_jaro
@forsberg zależy co chcesz skonfigurować. Bindowanie DI robi się w service providerach, jakieś specyficzne rzeczy dla danych podstron można wrzucić w middlewary, a standardowe configi typu dane do bazy wrzuca się w .env i ładuje w plikach config
M2
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 6 lat
  • Postów:43
1

Coś się kończy coś się zaczyna. ~ Andrzej Sapkowski

To samo z czego już widzę czeka i JS. Programowanie to technologia, a ona idzie do przodu wraz z biegiem czasu. Za 20 lat będą pewnie inne języki i trzeba się będzie na nie przesiadać, bo oferują więcej - z resztą na tym powinien bazować programista, że nie przywiązuje się do języka, a uczy się programować ogólnie.

R3
Jezyki ktore kiedys gdzies byly uzyte chyba ostatecznie nigdy nie umieraja ;)
forsberg
  • Rejestracja:prawie 18 lat
  • Ostatnio:około rok
  • Lokalizacja:Trójmiasto
1

Widzę, że zamiast wątku jak w temacie, nawet admin zaczął pisać off-top pt. "co mi się nie podobało w PHP 20 lat temu" ;D
Well, simply... no comment. :P This is not a serious talk, or is it? ;)

drorat1 napisał(a):

wejście w Symfony a nawet Laravel (mówię o tym żeby poprawnie tego używać) to nie lada wyzwanie, stawiam że co najmniej rok, jeśli nie więcej. Niektórzy twierdzą, że bez fundamentalnej znajomości PHP można zaczynać od razu od frameworków, tutaj zdania są podzielone, chociaż jak najbardziej można poznać PHP od fundamentalnej strony przeglądając kod i jak to jest rozwiązane we frameworkach. Pytanie czy to dobre podejście?

Moje zdanie jest takie: bez podstawowej znajomości języka żaden framework nie ma sensu, ale bardziej chyba jednak się liczy ogólna znajomość i doświadczenie w programowaniu.

Co do obiektowych framework'ów, przydaje się znajomość programowania czysto obiektowego. Moim zdaniem, najlepiej zaczynać naukę programowania od nauki Javy SE. poza tym, bardzo pomaga zainteresowanie we wzorcach projektowych i tzw. best practices, jeśli chodzi o FW, od oczywistego MVC, poprzez Dependency Injection, podstawową architekturę kodu i rozbicie go na sensowne części (services, bundles, moduły itp.). Wszystko są to cechy nowoczesnych frameworków, bez względu na język programowania.

drorat1 napisał(a):

Nie wiem co w dalszej perspektywie będzie z tym Laravelem, możliwe że to co teraz jest to jakaś moda, nie wiem tak jak to było z Kohaną (chyba 2.x), którą to podobno też Laravel zniszczył. Możliwe że hejt na niego jest związany raczej z obawami że wchodzi na rynek i jest walka, możliwe również że za X lat zostanie zniszczony przez coś innego i stanie się także "martwy" jak Kohana albo używany przez jakąś wąską społeczność. Z tych powodów można mieć dylemat: Symfony czy Laravel.

Don't worry, really, hate jest na wszystko, od Javy po Cobole, C#, kompilatory C/C++, bazy danych, odmiany assemblerów, a nawet procesory, i wszystko inne ;) Na razie fakty są takie, że Laravel i SF budują pozycję standardu w środowisku PHP, a co będzie za 5-10 lat, można gdybać. To tyle, jeśli chodzi o przyszłość PHP (czyli jak w temacie). A poza FW, Wordpress czy Drupal są ciągle silne np. w USA (i innych krajach), tak szybko też nie odejdą.

czysteskarpety
czysteskarpety
dodałbym jeszcze Joomla, Magento, oraz ModX, Concrete5, nie wszystkie popularne, ale jednak kilka milionów userów
somekind
@forsberg, a mógłbyś pisać po polsku?
NG
dobry komentarz ;)
forsberg
  • Rejestracja:prawie 18 lat
  • Ostatnio:około rok
  • Lokalizacja:Trójmiasto
1

Na razie fakty są takie, że Laravel i SF budują pozycję standardu w środowisku PHP, a co będzie za 5-10 lat, można gdybać. To tyle, jeśli chodzi o przyszłość PHP (czyli jak w temacie). A poza FW, Wordpress czy Drupal są ciągle silne np. w USA (i innych krajach), tak szybko też nie odejdą.

Odpowiem sobie po ok. 4 latach, że nic się właściwie nie zmieniło z powyższych - poza wyższymi wersjami. ;) To tak z czysto encyklopedycznej, dziennikarskiej powinności... do tego stopnia, że zacząłem się czasami zastanawiać, czy WP już zostanie na zawsze jedynym CMS'em, który się liczy.

czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
0
forsberg napisał(a):

Odpowiem sobie po ok. 4 latach, że nic się właściwie nie zmieniło z powyższych - poza wyższymi wersjami. ;) To tak z czysto encyklopedycznej, dziennikarskiej powinności... do tego stopnia, że zacząłem się czasami zastanawiać, czy WP już zostanie na zawsze jedynym CMS'em, który się liczy.

Tak, zabawnie poczytać starsze komentarze, a jeszcze zabawniejsze, że pomimo mnogości bardziej nowoczesnych rozwiązań (czasami na siłę wciskanych), nadal nie ma porządnego cms'a z solidnym zapleczem i taką role spełnia 20-letni staruszek.


somekind
To samo jest w motoryzacji. Nie ma na rynku samochodu, który zastąpiłby moje 20letnie volvo.
forsberg
  • Rejestracja:prawie 18 lat
  • Ostatnio:około rok
  • Lokalizacja:Trójmiasto
3

Jeśli chodzi o CMS i inny software (co jest trochę odrębną sprawą niż PHP), to IMHO sytuacja jest następująca:

  • GIMP jest również b. stary - czy coś go zastąpiło? nie
  • Linux jest również b. stary - czy coś go zastąpiło? nie
  • internet, HTML, CSS, HTTP... jest również b. stary - czy nastąpiła jakaś rewolucja? nie
  • podobnie WordPress
  • tak samo wspomniana branża motoryzacyjna: nikomu się nie opłaca robić większych innowacji, jeśli nie zmieni to rynku (poza tymi forsowanymi przez nowych, doszywanych Ford'ów i Tesl'ów w Ameryce - których tak naprawdę nikt nie potrzebuje ani nie chce, ale amerykański marketing potrafi zdziałać cuda) :P

A jednak czasy się zmieniły od ok. 20 lat. Teraz nikt poważnie już nie inwestuje w tzw. "software" (tj. desktop), wszyscy idą w web lub mobile - a to co innego. I kombinują jak wydrzeć jak największy kawałek tortu na istniejącym rynku, a najlepiej go zmonopolizować, narzucając ludziom subskrypcje (patrz: Adobe).

I pewnie dlatego WP także się już nie zmieni specjalnie, nie zostanie zastąpiony - co najwyżej zostanie mu zabrane trochę rynku przez coraz bardziej udoskonalane rozwiązania typu Wix.

Nikogo nie interesuje szerszy punkt widzenia ani praca nad rozwiązaniami, które spowodowałyby rewolucję - poza małą grupką, chyba coraz mniejszą, sieciowych anarchistów-idealistów, takich jak Linus Torvalds.

Spójrzcie, co się dzieje z Oracle / Javą, na przykład. Opłaty można już nawet dorzucać do czegoś, co było uznawane za darmowe.

mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

@forsberg: gimpa zastąpiło https://affinity.serif.com/en-gb/photo/ tania apka mająca dużo więcej opcji i lepsza w obsłudze niż gimp :)


It's All About the Game.
czysteskarpety
czysteskarpety
Ja kupiłem jakiś czas temu photoshopa CS5 bez abonamentu i mi wystarcza na okazjonalną edycję.
mr_jaro
@czysteskarpety: no ale adobe ma w zwyczaju blokowac aktywacje po jakimś czasie nawet gdy nie ma abo ;)
czysteskarpety
czysteskarpety
@mr_jaro: mozliwe, jednak moja jakoś działa i styka, dużo nie dałem, bo wersja en, z doskoku korzystam
mr_jaro
@czysteskarpety: np cs3 nie aktywujesz, kilka lat temu wyłączyli serwery i nie dali obejścia.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 4 godziny
1
forsberg napisał(a):

Spójrzcie, co się dzieje z Oracle / Javą, na przykład. Opłaty można już nawet dorzucać do czegoś, co było uznawane za darmowe.

Jest wersja płatna (ze wsparciem) i darmowa (ta stała się standardem w ostatnich wersjach).


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
forsberg
Tak wiem, i nie wątpię, że z płatnego korzystają głównie korporacje, nie zmienia to jednak faktu... tych opłat za wszystko robi się dużo.
Wibowit
Ekhem, tych opłat za Javę jest dalej 0. W pracy korzystam z darmowej Javy, darmowego IntelliJ Community Edition, darmowego Cygwina (bo korpo wymusza Windowsa) itd i wszystko gra.
forsberg
  • Rejestracja:prawie 18 lat
  • Ostatnio:około rok
  • Lokalizacja:Trójmiasto
2

Znam Affinity, mam poprzednią wersję Draw Plus z Serif (wektorowy program, nie rastrowy), do moich potrzeb idealny. Ale z Gimpa korzystam, bo dobrze działa, na każdym sprzęcie i w razie czego na linux da się także używać.

Czy zastąpił - no cóż. Gimp jest darmowy, i jest dobry. :)

Zobacz pozostałe 8 komentarzy
forsberg
Nie wiem czemu macie taki problem z Gimpem. :) Tam nie ma wielkiej filozofii: przesuń, obróć, zaznacz, dodaj warstwę, ściemnij / rozjaśnij warstwę, obrysuj, użyj filtra... problem jest dopiero, gdy trzeba bardziej zaawansowane obróbki robić, ale to zostawiam grafikom, też nie mam na takie rzeczy czasu. To z czego korzystam to zbiór narzędzi w Gimp, które mają nazwy dokładnie takie, jak to co opisują.
mr_jaro
bo ma toporny interfejs, nawet kart nie idzie zamienić miejscami.
drorat1
GIMP ma takie narzędzie jak G'MIC QT które daje różne możliwości np. stackowanie wielu zdjęć. No i jeszcze do GIMP-a można pisać własne skrypty do automatycznej obróbki. Bardzo dobry program. Nie trzeba płacić nie wiadomo ile żeby obrabiać zdjęcia wedle własnego uznania.
forsberg
@drorat1: próbowałeś robić skrypty w Gimp - w czymś innym niż Scheme/Lisp, np. Python? I co znaczy "stackowanie zdjęć"?
drorat1
Skryptów nie pisałem, na razie używałem czegoś z githuba. Stackowanie to technika łączenia wielu zdjęć w jedno w celu redukcji szumów i to robi GMIC QT. Robisz serię wielu zdjęć a potem łączysz to w jedno, na medianę czy na średnią i masz mniejsze szumy np. przy wysokim ISO. Powszechne np. w astrofotografii.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)