Gå til innhold

Anbefalte innlegg

Hei, jeg har hatt kursene inf1000 og inf1010 på UiO, og går på linja programmering og nettverk, 2 året.

Det vi har lært er mye generell programmering, med stort fokus på objektorientering, og alt er skrevet i java, i den gamledagse emacs editoren.

 

Jeg ønsker å lære meg å lage webapplikasjoner, og lurer på om jeg kan bruke java på serversiden? Eller blir det helt bak mål? Burde jeg lærer meg php? Det virker som det er veldig utbrett og lett å finne info om.

 

Applikasjonen jeg har tenkt å lage er for basketklubben min. Ønsker at alle skal kunne ha en bruker, slik at man kan autentisere seg til lukkede forumtråder, og ja, da må jeg jo ha et forum også. I ønsker jeg å kunne legge inn statistikk fra kamper, og at statistikk kan kobles opp mot de forskjellige brukerne, og at den som legger inn statistikk kan autentisere seg også.

 

Det jeg kan av web fra før er litt html, css, og en smule javascript.

 

Hovedspørmålet er om jeg kan utnytte at jeg kan java som språk forholdsvis godt, eller om jeg skal lære meg php isteden? Eller burde jeg gå for python og django, eller ruby on rails? Har hørt om play framework også, som er for java.

 

Noen forslag fra noen som har vært i en liknenende situasjon?

Lenke til kommentar
Videoannonse
Annonse

Du kan gjerne holde deg unna PHP - så slipper du å få snerk på hjernen ;)

 

Java er et alternativ - men det passer best for store applikasjoner; mye det samme som CSharp og ASP.net brukes til.

 

Til din oppgave, så vil jeg anbefale groovy og grails - som bruker samme tankegang som ruby on rails; men språket er groovy; som er løselig bygd på java.

  • Liker 1
Lenke til kommentar

Grails er eit utmerka webrammeverk og Groovy er eit fantastisk språk som henter det beste frå Java, Ruby og Python.

Prøv deg på Grails, det er godt dokumentert og enkelt å koma i gong. Samtidig så får du tvunge til å ha ein nokonlunde god programmeringspraksis med tanke på struktur.

 

PHP er noko vræl, Hold deg langt vekke...

  • Liker 1
Lenke til kommentar

Stiller meg bak alt som blir sagt her. Den store fordelen med Java er økosystemet. Eksempelvis grails, play og så videre. Samt at du er plattformuavhengig. Så min anbefaling er også Java. Men du kan få noen motforestillinger på kjøpet:

 

Ulempen med javaplattformen er at det kan være vanskelig å orientere seg. Jeg er ikke noen tilhenger av .Net, men du kan jo vurdere det, med de bindingene det innebærer. Microsofts one-size-fits-all-produkt passer ikke for alle, men funker nok helt utmerket for ganske mange. Og det er veldig mange valg du ikke trenger å ta stilling til. På godt og vondt.

 

Til det bruket du nevner _kan_ det være enklere å komme igang med en php-variant, du har f.eks. flere valgmuligheter hvis du har tenkt å integrere forumfunksjoner. Men i bunn og grunn - jeg vil ikke anbefale det jeg heller. Eneste store fordelen jeg ser med Php er utbudet av hostingtilbud.

 

Merk også at Java har ihvertfall tre helt suverene utviklingsverktøy; IntelliJ, Netbeans og Eclipse. Disse støtter vel Php også, men på en litt stemoderlig måte.

Endret av quantum
  • Liker 1
Lenke til kommentar

Du kunne jo titte på http://www.playframework.org/ som er et spennende web-rammeverk for Java (og Scala).

 

Ellers er det jo blitt veldig populært også med JavaScript på serversiden, med Node.JS, og rammeverket express

 

Jeg har nylig arbeidet med play og anbefaler det ikke videre dersom man skal bruke Java. Utrolig dårlig dokumentert! Ville gått fullt ut for Scala i såfall.

Lenke til kommentar

Java fungerer flott til weben. Play rammeverket, eller Spring er noe å se på. Også annet, som nevnt. Ulempen med Java er at det kan være veldig "enterprisy", ikke så lett å komme i gang med alt.

 

PHP er også et bra valg, selv om mange liker å hate det. Du har tilgang på mange rammeverk, ferdigskrevne ting og enormt mange ressurser på nettet. F. eks. kan du bruke wordpress for å lage selve nettsiden, en wordpress-plugin med forum for forumet eller f. eks. phpbb som forum. Vil du lage mer fra scratch selv er Zend Framework 2 noe å se på.

Lenke til kommentar

Alt det du spør om er PHP og MySQL skapt for å gjøre, sammen med HTML, CSS og JS. Ja du kan utnytte at du kan Java fra før. PHP er nemlig veldig likt som Java, bare litt snillere syntax. I tillegg finnes det mange gode rammeverk for PHP med OOP, MVC, osv. Feks CodeIgniter og Laravel.

 

Ser det er flere som kan fortelle at de ikke liker PHP, men ikke hvorfor. En fordel med PHP er at det er et levende språk (er under stadig utvikling), har et stort community, og mye dokumentasjon, biblioteker, moduler, support osv. Verdens største nettsted bruker PHP.

Lenke til kommentar

Eg skal fortelja deg kort kvifor eg ikkje like PHP -> http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ eller MySQL -> http://sql-info.de/mysql/gotchas.html (litt gamal nå, men poenget er der)

 

PHP rammeverk kommer og går fortare enn fotballmanagere, dei er ikkje konsistente, dårleg dokumenterte og vil breake kraftig over tid. Den same tildensen finner ein også i Python. Det finnes nokre små unntak, men forskjellen til mange av Java sine rammeverk er stor. Java er uten tvil den plattformen med dei klart beste tredjepartsbiblioteka.

 

Java sin syntax er og ein smakssak, legg til Groovy og du har ein mykje betre syntax enn PHP og samtidig mykje betre ytelse. Og utviklarverktøy og kodeanalyseverktøy er i stor grad mykje betre på Java plattformen.

 

PHPutviklerar er ein gjeng suppehuer som forsvarer PHP fordi det er det einaste verktøyet dei kan. PHPutviklerar er dei vanskelegaste å jobbe med, og mange er altfor fokusert på å skrive "god PHP" kode framfor å koma i mål med prosjektet sitt. Og den "gode vakre koden" er som regel ein standard dei har funne på sjølv og er ikkje ein bred communitystandard som PEP8 -> http://www.python.org/dev/peps/pep-0008/

 

PHP er eit døande språk, fleire går idag over til Python eller tilbake til Java. Facebook for eksempel brukar bare PHP til frontend, men dei siste åra så har fleire av tenestane i Facebook blitt bytta ut med Java. Java og Python er dei einaste plattforma som blir brukt i Facebook sine backend systemar. Netflix brukar Java i svært stor grad. Og Google brukar masse Java og Python.

 

Grails er eit prakteksempel på eit rammeverk som gjer Java dritgøy til webutvikling. Eg trur det ikkje finnes eit meir produktivt webrammeverk enn Grails per dags dato. Og dokumentasjonen har så og si vært konsistent sidan eg begynte med versjon 0.4.2 for mange mange år sidan, i motsetning til Play som breaka kraftig ved overgangen frå 1.x til 2.x

  • Liker 1
Lenke til kommentar

Noen tips videre mht. Java: Her er det utrolig mange valgmuligheter når det gjelder rammeverk.

 

Spring er allerede nevnt, jeg ville kanskje unngått SpringMVC som webrammeverk (sjekk heller spring roo som alternativ til play), men ellers glimrende til wiring, transaksjoner/db og mye annet.

 

Vurder en ORM, f.eks. Eclipselink eller Hibernate, litt mer fiklete å komme igang med enn f.eks. Springs jdbctemplate, men mer effektivt når du først er i gang.

 

Webrammeverk, Wicket eller Tapestry for template-basert variant, Vaadin eller Zkoss for komponentorientert.

 

Ta ibruk et byggesystem som f.eks. maven, alle de nevnte IDE'ene for Java integrerer godt med maven (noen bedre enn andre ...)

Lenke til kommentar

Ingen som har nevnt Apache Tomcat eller Oracle Glassfish?

De er en del av økosystemet de også. Tomcat er en servlet-container, Glassfish en full Jee6 appserver.

 

Spring har basert mye av suksessen sin på kompleksiteten i tidligere enterprise-java-standarder, det var ikke attraktivt å lage lette webapplikasjoner på J2ee 1.4, så mange foretrakk å basere seg på Spring og en enkel webcontainer som Tomcat, istedenfor å bale med J2ee. Jee6 har kommet langt mht. å gjøre ting eklere, så behovet for Spring er ikke like smertefullt tilstede. Dette har jo heller aldri vært et enten-eller-valg, Spring har alltid latt seg kombinere med enterprise java og andre rammeverk helt fint.

Lenke til kommentar

Det er heller omvent, i noen grad. En appserver skal tilby en del tjenester til applikasjonen avhengig av hvilken standard appserveren støtter. Eksempelvis tilbyr Glassfish CMP (JPA 2.0) og bruker Eclipselink som implementasjon (Glassfish er jo Jee6-referanseimplementasjonen og implementerer hele stack'en av jee6-api'er), JBoss bruker Hibernate (men man kan gjerne bytte om på det selv). Tomcat tilbyr ikke EJB-støtte i det heletatt. (Men Tomcat brukes ofte som servletcontainer-komponent i appservere som støtter hele jee-stack'en.)

 

Play f.eks. tilbyr vel en egen appserver som starter opp når du kjører/debugger applikasjonen?

 

Bygger du med maven kan du kjøre app'en din med f.eks. `mvn tomcat:run`

 

Mange liker å embedde appserveren i applikasjonen for å unngå overhead under utvikling, dvs. man fyrer opp en Jetty-instans i en main-metode.

 

Men ingen av de webrammeverkene jeg nevnte inkluderer noen appserver, og de implementerer ikke noen jee-standard heller. Standarden for webgui er vel JSF, men den standarden føler vel mange henger litt igjen i forhold til de forenklingsprosessene mange av de andre jee-standardene har vært gjennom.

Endret av quantum
  • Liker 1
Lenke til kommentar

Mitt innlegg i debatten for halvannet år siden - om noen er interessert: PHP ikke Djevelens verk likevel.

I den blogposten sa jeg at jeg ville gi PHP en sjangse til. Det strandet derimot ganske raskt. Det var rett og slett for kjedelig

Jeg husker faktisk du nevnte akkurat det! Kjedelig er nå ganske så subjektivt vil jeg si:) Men kan du utdype bittelitt og fortelle hvilket tilsvarende språk som er gøyere?

 

@siDDis: ok, takk for utdypelsen. Ja er enig med at det er flere ting å sette fingeren på PHP. Har fra før av tenkt over feks inkonsistensen til funksjoner og forskjellig funksjonssett for forskjellige DBMS'er.

 

PHP rammeverk: Ja det finnes veldig mange rammeverk, og alle har til hensikt å forbedre språket og strukturen. Selv har jeg kun vært borti CodeIgniter og såvidt begynt å snuse på Laravel. Førstnevnte er en av dinosaurene og det har fått mye god kritikk for bl.a. relativ liten overhead, stabilitet og god dokumentasjon. Sistnevnte er veldig i vinden fortiden og fått mye positiv kritikk for å være et moderne rammeverk som bringer PHP videre på gode spor osv, men samtidig er det også et relativt ungt rammeverk, så levetiden er litt for tidlig å si noe om. Jeg er interessert i å høre mer fra deg om at rammeverkene, da spesielt de store og kjente, er inkonsistente, har dårlig dokumentasjon og at de vil "breake kraftig over tid".

 

"Java sin syntax er og ein smakssak, legg til Groovy og du har ein mykje betre syntax enn PHP " - hva sier du her? At Java-syntaxet er en smaksak, men Groovy-syntaxet ikke er det, men objektivt er bedre enn PHP sitt syntax? Uansett, jeg har aldri vært borti Groovy. Kan det brukes til samme formål på samme måte som PHP?

 

"PHPutviklerar er ein gjeng suppehuer som forsvarer PHP fordi det er det einaste verktøyet dei kan. ". - det var da litt av en kynisk uttallelse. Jeg kan mange flere språk. Men jeg liker PHP rett og slett. Pg jeg føler meg hjemme i PHP. Rammeverkene er til for å ta seg av ulempene.

 

"mange er altfor fokusert på å skrive "god PHP"". - Er det ikke bra å skrive bra kode, uansett hva du progger i? Spaghettikode er jeg helt sikker på man kan få til med Groovy også. Ser ikke på det som noe PHP-fenomen. Konvensjoner er stor fordel å følge uansett.

 

"PHP er eit døande språk" - kilde? Jeg har programmert i grunnleggende Java (15 stp.), og min oppfattelse er at det er et tungt og tregt språk, både når det gjelder kodingen, kompileringen og kjøringen. Og sette opp GUI er et herk (er sikkert en vanesak det). Har riktignok kun skrevet relativt enkle desktop-applikasjoner og applets.

 

Når det gjelder økosystem, så vil jeg si PHP har et veldig stort et. Tenk all API'en, alle rammeverkene, alle biblioteker, all støtten, alle CMS'er, alle forumsoftwaren+++

 

Jeg svarer ikke for å krangle og krige med deg, men jeg trenger å bli mer overbevist før jeg velger et fremmedsspråk til mitt neste webprosjekt.

Endret av MikkelRev
  • Liker 1
Lenke til kommentar

"PHP er eit døande språk" - kilde? Jeg har programmert i grunnleggende Java (15 stp.), og min oppfattelse er at det er et tungt og tregt språk, både når det gjelder kodingen, kompileringen og kjøringen. Og sette opp GUI er et herk (er sikkert en vanesak det). Har riktignok kun skrevet relativt enkle desktop-applikasjoner og applets.

 

Jeg reagerer på dine påstander om Java. Jeg har jobbet med Java profesjonelt siden 2004, og kjenner meg overhode ikke igjen i påstandene dine. På hvilken måte er Java et tungt og tregt språk? Og i forhold til hva?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...