Taal keuzes - na jaren PHP

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 01-10 23:31

Crazy-

Best life ever

Topicstarter
Al jaren ontwikkel ik met (in?) PHP diverse webapplicaties. De laatste jaren met mbv Laravel als framework, onder het mom niet het wiel opnieuw uitvinden.

Laatste 2 jaar via mijn banen in aanraking gekomen met ReactJS en onlangs ook met NodeJS en TypeScript. Zelfstandig ook beetje gespeeld met Python.

Met elk bovenstaande wat PoC projectjes in elkaar gezet, beetje spelen. Dit alles via Docker containers; live en non-live.

Klein proefopstelling met React & NodeJS laatst even in elkaar gezet; *snip*

Wat is nu het probleem? Qua front-end ben ik écht een no-go. (Komt met name ook door de desinteresse daarin haha.) anyway...

Ik heb jaren geleden een CRM applicatie geschreven (monolite, php, html4/jQuery) voor een kennis. Nu hebben we de wens hier een nieuwe, uitgebreidere applicatie voor te maken. Het doel is ook om meer partijen hiermee te gaan laten werken (multi-tenant).

Nu krijg ik persoon steeds minder met PHP als taal - er is behoefte aan wat anders, vooruitgang. Hier heb ik veel redenen voor; maar ik neem nu even aan dat het bij velen wel bekend is wat die zouden kunnen zijn.

Ik zit nu beetje in strijd met mezelf: waar doe ik goed aan? Welke opzet?

Ik neig naar NodeJS backend met een ReactJS PWA icm Bootstrap als basis. (Er zijn geen complexe design dingen nodig; het blijft een CRM - live interactie is wel van belang)

[ Voor 1% gewijzigd door Creepy op 10-10-2020 20:00 ]

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 00:15
Met de beschrijving die je nu geeft maakt het allemaal niet zoveel uit.

Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 26-09 12:50
Er is wel een verschil in deployment tussen alles wat je opnoemt. Kun je PHP overal wel kwijt, React en Node is al wat lastiger.

Heb je daar geen rekening mee te houden, dan zou ik kiezen voor wat je eigen voorkeur heeft. Dat maakt het ontwikkelen ook leuk en blijf je gemotiveerd.

Acties:
  • +2 Henk 'm!

  • bobdetweaker
  • Registratie: Maart 2015
  • Laatst online: 25-07 20:12
Ervaren web ontwikkelaar hier (15+ jaar, senior web developer) met ervaring in zowel PHP als JavaScript, TypeScript, libraries zoals React, frameworks als Zend Framework, Laminas, Symfony, Vue en ook Quasar. Mijn collega's en ik bouwen vrijwel alles (groot of klein) qua frontend en backend volledig gescheiden van elkaar als API en SPA als client.

Je kunt zowel PHP als JavaScript/TypeScript als backend taal gebruiken, afhankelijk van wat je tot je beschikking hebt voor hosting. Wij werken nog steeds heel erg veel met PHP vanwege onze voorkeur voor het gemak met OOP, ook al is dat in TypeScript ook super goed te doen. In beide talen kan je gebruik maken van een ORM voor extra abstractie tijdens het werken met databases en met beide talen kun je unit tests bouwen en code quality controleren met automatische tools (Jenkins, GitLab CI, CodeClimate, Scrutinizer).

Als frontend taal zou ik altijd Vue of React aanraden want dat bouwt gemakkelijk en snel, al is de leercurve volgens sommigen vrij stijl. Bij je frontent kan je met bijvoorbeeld Cypress integratietests afdwingen dat al je features aan je eisen voldoen, ook als je later wijzigingen hebt gedaan of bugs hebt opgelost.

Wil je het simpel houden of vindt je het belangrijk om tijd te besparen? Bouw dan alles in dezelfde taal. Gebruik TypeScript in combinatie met Express als je haast hebt. TypeScript helpt je fouten te besparen doordat het strikter is dan JavaScript. React en Vue zijn uitgebreid en kunnen je snel helpen hele interfaces op te zetten maar als je het niet kent is kost het je tijd om te leren terwijl Express gewoon simpel HTML files kan renderen via templates (Pug).

[ Voor 14% gewijzigd door bobdetweaker op 10-10-2020 23:00 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Postman schreef op zaterdag 10 oktober 2020 @ 21:12:
Er is wel een verschil in deployment tussen alles wat je opnoemt. Kun je PHP overal wel kwijt, React en Node is al wat lastiger.
Shared hosting is wel heel er 2002. Een VPS waar je op kunt draaien wat je wil heb je vanaf 3 euro per maand.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
@Crazy- : wat is je doel precies? Want uiteindelijk maakt het weinig uit.

https://niels.nu


Acties:
  • +2 Henk 'm!

  • bobdetweaker
  • Registratie: Maart 2015
  • Laatst online: 25-07 20:12
Hydra schreef op zondag 11 oktober 2020 @ 14:02:
[...]


Shared hosting is wel heel er 2002. Een VPS waar je op kunt draaien wat je wil heb je vanaf 3 euro per maand.
Dat is natuurlijk onzin. Een VPS vereist dat je zelf alles managed. Voor sommige projecten is dat helemaal niet nodig want als je dan ook nog eens alle OS en software updates moet doen (attended of niet) en ook nog moet weten wat de security best practices zijn voor de webserver en alle andere zaken kost het je al snel meer tijd dan nodig. Shared hosting is in veel gevallen echt prima tenzij je heel specifieke eisen hebt of echt zelf het beheer wilt overnemen.

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 01-10 23:31

Crazy-

Best life ever

Topicstarter
Hydra schreef op zondag 11 oktober 2020 @ 14:06:
@Crazy- : wat is je doel precies? Want uiteindelijk maakt het weinig uit.
Nou ja, waar zit ik slim? Ik ben al een tijdje beetje zoekende .... en loop dan een beetje vast.

Als ik kijk naar het opzetten van losse micro-services t.b.v. schaling klinkt/voelt NodeJS erg interessant

Eventueel daar bovenop/naast een ReactJS app voor de front-end

Qua deployen etc geen issue; heb zelf aantal VPS’es oa 1 met Rancher tbv Docker. Beetje hobbymatig altijd leuk. Thuis draai ik ook een RancherOS met Portainer.

Indien nodig knal ik bij DigitalOcean een Kubernetes live; al eens gedaan 60’dagen proef. Leuk spul!

Het gaat eigenlijk wat verder. Of het is meer een “eigen” dilemma. Blijf ik PHP doen of ga ik echt volledig over naar NodeJS icm ReactJS?

Wellicht is het ook eens topic waardig :X

[ Voor 6% gewijzigd door Crazy- op 11-10-2020 15:09 ]

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • +1 Henk 'm!

  • eLScha
  • Registratie: Juli 2005
  • Niet online
Hydra schreef op zondag 11 oktober 2020 @ 14:02:
[...]


Shared hosting is wel heel er 2002. Een VPS waar je op kunt draaien wat je wil heb je vanaf 3 euro per maand.
Zonder enige vorm van onderhoud, monitoring of support in de setup.

Acties:
  • +3 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Crazy- schreef op zondag 11 oktober 2020 @ 15:08:
[...]


Nou ja, waar zit ik slim? Ik ben al een tijdje beetje zoekende .... en loop dan een beetje vast.

Als ik kijk naar het opzetten van losse micro-services t.b.v. schaling klinkt/voelt NodeJS erg interessant

Eventueel daar bovenop/naast een ReactJS app voor de front-end

Qua deployen etc geen issue; heb zelf aantal VPS’es oa 1 met Rancher tbv Docker. Beetje hobbymatig altijd leuk. Thuis draai ik ook een RancherOS met Portainer.

Indien nodig knal ik bij DigitalOcean een Kubernetes live; al eens gedaan 60’dagen proef. Leuk spul!

Het gaat eigenlijk wat verder. Of het is meer een “eigen” dilemma. Blijf ik PHP doen of ga ik echt volledig over naar NodeJS icm ReactJS?

Wellicht is het ook eens topic waardig :X
Je klinkt een beetje alsof je last hebt van FOMO :) Alle 'koele' kinderen op het web doen iets met javascript, en je wilt ook meespelen. Ik zit nu ruim 25 jaar in de web based applicaties en sites. En dit soort momenten heb ik ook zeker al een keer of 3 gehad. Ik moet nu Python en Ruby leren want dat is het nieuwe gesneden brood volgens veel mensen online. Recent nog zo'n moment gehad met Go.

Een taal is uiteindelijk een taal, het gast erom wat je ermee wilt en gaat maken bepaald of het de juiste taal is voor wat wilt maken.

Voor backend systemen is PHP in mijn bescheiden mening nog steeds een hele geschikte taal, maar niet meer of minder geschikt dan C#, Elixer, GO of Javascript. Zou ik met één van de talen een backend kunnen maken? Ja vast wel, maar niet zo snel en veilig als in PHP. Waarom? Van PHP weet ik waar de problemen kunnen zitten uit ervaring, bij de andere talen moet ik dat nog ondervinden en leren. Leuk voor in een homelab en om ervaringen mee op te doen, maar niet voor iets wat ik in productie moet draaien en onderhouden.

Voor frontend zien we nu wel een echte shift naar reactive javascript, en browsers zijn nu eindelijk op het niveau dat ze dit ook daadwerkelijk zonder al te veel hacks en polyfils kunnen. Als ik nu een nieuwe SaaS zou moeten ontwerpen zou ik zeker naar een reactive framwework gaan. In mijn geval zou dat dan VUE zijn, vooral omdat ik Evan zijn manier van denken heel prettig vind. Of als het niet volledig headless/decoupled zou hoeven te zijn, Laravel met Livewire.

Kort gesteld, er is geen 'ultieme' oplossing, enkel het goed afwegen van voor en tegens, rekening houden met wat jij en/of je team comfortabel mee is en daar mee starten. Slechte keuze's bestaan niet, hooguit achteraf gezien minder verstandige en die zijn bij een fatsoenlijk datamodel altijd wel op te lossen.
Crazy- schreef op zaterdag 10 oktober 2020 @ 19:56:

Nu krijg ik persoon steeds minder met PHP als taal - er is behoefte aan wat anders, vooruitgang. Hier heb ik veel redenen voor; maar ik neem nu even aan dat het bij velen wel bekend is wat die zouden kunnen zijn.
Heel eerlijk, nee niet zo heel bekend, althans niet bij mij persoonlijk. Wel veel ruis op twitter van puristen die vinden dat ze beperkt worden door het gebrek aan strict typing en dat het teveel op java lijkt met de overdaad aan interfaces en classes in populaire framworks. Maar dat maakt de taal er niet minder van. Maar vertel eens, waar zit die behoefte aan vooruitgang bij jou in? En waarom heeft node dat wel, en php niet?

[ Voor 12% gewijzigd door kwaakvaak_v2 op 11-10-2020 16:03 ]

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 00:15
Wat @kwaakvaak_v2 zegt ben ik het wel aardig mee eens. Ik had het kunnen typen maar dan PHP vervangen door Ruby. Ik persoonlijk zou als ik een CRM moet maken from scratch direct beginnen met Ruby (met Rails), PostgreSQL en Mithril.js. Omdat ik daar nou eenmaal de meeste ervaring heb. Dus het meest productief. Maar in de kern maakt het allemaal niet zoveel uit.

Wat veel belangrijker is: datamodellering en daarmee samenhangend, applicatiearchitectuur.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Crazy- schreef op zondag 11 oktober 2020 @ 15:08:
Als ik kijk naar het opzetten van losse micro-services t.b.v. schaling klinkt/voelt NodeJS erg interessant
NodeJS schaalt niet buitengewoon fantastisch. Nogmaals; het maakt uiteindelijk niet veel uit wat je gebruik voor een back-end. Voor welke stack je kiest, is vooral een kwestie van welk carrierepad je voor jezelf uitstippelt.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
bobdetweaker schreef op zondag 11 oktober 2020 @ 14:16:

Dat is natuurlijk onzin. Een VPS vereist dat je zelf alles managed. Voor sommige projecten is dat helemaal niet nodig want als je dan ook nog eens alle OS en software updates moet doen (attended of niet) en ook nog moet weten wat de security best practices zijn voor de webserver en alle andere zaken kost het je al snel meer tijd dan nodig. Shared hosting is in veel gevallen echt prima tenzij je heel specifieke eisen hebt of echt zelf het beheer wilt overnemen.
Er zijn meer dan genoeg tussenvormen. Je kunt ook volledig managed oplossingen draaien bij Google of Amazon zonder aan PHP bijvoorbeeld vast te zitten. Daarbij hebben shared hosts no ook niet bepaald een fantastische reputatie wat betreft het up to date houden van PHP.

Het gaat erom dat de TS vraagt om een richting en ik vindt dat "PHP want shared hosts" een onzinargument is.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 01-10 23:31

Crazy-

Best life ever

Topicstarter
kwaakvaak_v2 schreef op zondag 11 oktober 2020 @ 15:54:
[...]


Je klinkt een beetje alsof je last hebt van FOMO :) Alle 'koele' kinderen op het web doen iets met javascript, en je wilt ook meespelen. Ik zit nu ruim 25 jaar in de web based applicaties en sites. En dit soort momenten heb ik ook zeker al een keer of 3 gehad. Ik moet nu Python en Ruby leren want dat is het nieuwe gesneden brood volgens veel mensen online. Recent nog zo'n moment gehad met Go.

Een taal is uiteindelijk een taal, het gast erom wat je ermee wilt en gaat maken bepaald of het de juiste taal is voor wat wilt maken.

Voor backend systemen is PHP in mijn bescheiden mening nog steeds een hele geschikte taal, maar niet meer of minder geschikt dan C#, Elixer, GO of Javascript. Zou ik met één van de talen een backend kunnen maken? Ja vast wel, maar niet zo snel en veilig als in PHP. Waarom? Van PHP weet ik waar de problemen kunnen zitten uit ervaring, bij de andere talen moet ik dat nog ondervinden en leren. Leuk voor in een homelab en om ervaringen mee op te doen, maar niet voor iets wat ik in productie moet draaien en onderhouden.

Voor frontend zien we nu wel een echte shift naar reactive javascript, en browsers zijn nu eindelijk op het niveau dat ze dit ook daadwerkelijk zonder al te veel hacks en polyfils kunnen. Als ik nu een nieuwe SaaS zou moeten ontwerpen zou ik zeker naar een reactive framwework gaan. In mijn geval zou dat dan VUE zijn, vooral omdat ik Evan zijn manier van denken heel prettig vind. Of als het niet volledig headless/decoupled zou hoeven te zijn, Laravel met Livewire.

Kort gesteld, er is geen 'ultieme' oplossing, enkel het goed afwegen van voor en tegens, rekening houden met wat jij en/of je team comfortabel mee is en daar mee starten. Slechte keuze's bestaan niet, hooguit achteraf gezien minder verstandige en die zijn bij een fatsoenlijk datamodel altijd wel op te lossen.


[...]


Heel eerlijk, nee niet zo heel bekend, althans niet bij mij persoonlijk. Wel veel ruis op twitter van puristen die vinden dat ze beperkt worden door het gebrek aan strict typing en dat het teveel op java lijkt met de overdaad aan interfaces en classes in populaire framworks. Maar dat maakt de taal er niet minder van. Maar vertel eens, waar zit die behoefte aan vooruitgang bij jou in? En waarom heeft node dat wel, en php niet?
Grote kans dat je gewoon gelijk hebt hoor ;-) FOMO. Misschien ligt het zelfs wat dieper dan puur de taal keuze.
Je opmerking qua het weten waar de problemen liggen; deze zijn bij een nieuwe taal inderdaad niet bekend (voor jezelf).

Moet eerlijk toegeven dat ik redelijk vast ben - gezien hoe 'laat' ik überhaupt gekeken heb naar iets anders dan PHP.

het puur laten op hobby kant is wellicht wel de beste optie voorlopig en op pro niveau php aan te houden.

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Maar wáárom ben je nou ‘laat met iets anders dan PHP?’

PHP voldoet wel voor de meeste wensen voor zover je die genoemd hebt.

Maar het is uiteraard niet de enige optie. Dan kies je toch iets anders? Bedenk maar in welke component je wil experimenteren. Als je echt snel aan meerdere partijen je CRM wil verkopen kan je misschien beter niet op elk onderdeeltje uit je comfort zone, want dan schiet je misschien niet op.

Als je dan PHP wil inwisselen, dikke prima, maar doe het dan omdat je iets nieuws wil, want ‘laat’ en ‘iedereen weet waarom’ raakt echt kant nog wal. Al zeg je maar dat je geen Dollarteken meer kan zien, zelfs dat is al een beetje onderbouwing. :p

{signature}


Acties:
  • 0 Henk 'm!

  • knarfyboy
  • Registratie: November 2001
  • Laatst online: 16-09 14:14
Dit is echt precies mijn pad. 14 jaar ervaring met php, nu aantal jaren Laravel en sinds kort verdiep ik me in react node en typescript. Bij een klant werk ik hier nu mee en het delen van interfaces tussen react en node is echt ideaal en je stampt zo een applicatie uit de grond.

Zelf ben ik nu ook bezig met react en tailwind. Dat is echt heel snel dingen bouwen omdat het zo utility based is. Je kunt ook de bestaande classes extenden en zo meer kleuren, shadows, groottes etc toevoegen tot het echt precies werkt als jij wil. Ik bouw ook landingpages hiermee en als je alles uit de backend haalt genereer je ook heel makkelijk thema’s.

Acties:
  • 0 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Laatst online: 22:22

Yucon

*broem*

Hydra schreef op zondag 11 oktober 2020 @ 19:23:
[...]


NodeJS schaalt niet buitengewoon fantastisch.
Vanaf de zijlijn had ik juist begrepen dat dit het grote pluspunt van NodeJS was, en TS is blijkbaar in dezelfde veronderstelling. Volgens mij was dat ook het oorspronkelijke idee ervan. Waar ging het mis?

Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Yucon schreef op dinsdag 13 oktober 2020 @ 07:32:
Vanaf de zijlijn had ik juist begrepen dat dit het grote pluspunt van NodeJS was, en TS is blijkbaar in dezelfde veronderstelling. Volgens mij was dat ook het oorspronkelijke idee ervan. Waar ging het mis?
Euh, marketing? Zie https://www.techempower.com/benchmarks/

Het is gewoon een compleet verzinsel dat het NodeJS single threaded event driven model 'sneller' zou zijn dan andere manieren. Beetje het "MongoDB is webscale" verhaal. Er zijn relatief snelle JavaScript engines zoals es4x, maar geen van die komen in de buurt van de snelste Java oplossingen, laat staan C++.

Daarbij; bij het overgrote merendeel van de services is het framework uberhaupt de bottleneck niet. Daar is developer productivity ook gewoon het belangrijkste. En daar scoort NodeJS niet fantastisch op.

https://niels.nu

Pagina: 1