Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

AngularJS vs. JQuery m.m.

Har läst lite om AngularJS. Hur är det jämfört med JQuery t.ex?

Bör man lära sig båda?

Bör man lära sig avancerad Javascript eller är AngularJS en slags ersättning.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Aug 2011

Lär dig JS först. Skulle själva föredra att lära mig AngularJS över jQuery om det var det ena eller det andra, men angular anv sig också av lite jquery (jqlite).

JavaScript - språk.
jQuery - bibliotek.
AngularJS - ramverk.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av kronwalled:

Lär dig JS först. Skulle själva föredra att lära mig AngularJS över jQuery om det var det ena eller det andra, men angular anv sig också av lite jquery (jqlite).

JavaScript - språk.
jQuery - bibliotek.
AngularJS - ramverk.

Så det bästa vore först Javascript, sedan JQuery och sist AngularJS?

Om man blandar in Bootstrap också, skulle det komma efter AngularJS eller istället för?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Aug 2011
Skrivet av Larsp777:

Så det bästa vore först Javascript, sedan JQuery och sist AngularJS?

Om man blandar in Bootstrap också, skulle det komma efter AngularJS eller istället för?

Bootstrap i sig är inte direkt relaterat (men populärt), men att lära sig html + css tidigt är vettigt om du inte besitter de kunskaperna redan.

Ganska liten del av angular som anv sig av jquery, främst när du jobbar med egna direktiv. Bra att kunna, men kanske inte ett måste, vilket JS är.

html -> css -> js -> (jquery) -> angular

Eller om du föredrar jquery så skippar du angular, finns många andra ramverk också. Jquery kanske är vettigare än angular att kunna, men jag skulle hellre bygga i angular.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av kronwalled:

Bootstrap i sig är inte direkt relaterat (men populärt), men att lära sig html + css tidigt är vettigt om du inte besitter de kunskaperna redan.

Ganska liten del av angular som anv sig av jquery, främst när du jobbar med egna direktiv. Bra att kunna, men kanske inte ett måste, vilket JS är.

html -> css -> js -> (jquery) -> angular

Eller om du föredrar jquery så skippar du angular, finns många andra ramverk också.

Jag kan både HTML, Javascript (lite JQuery) och CSS ganska bra.

Tänker mer på när man ska gå vidare.

Läste att AngularJS var "one page". Vad menas med det?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Aug 2011
Skrivet av Larsp777:

Jag kan både HTML, Javascript (lite JQuery) och CSS ganska bra.

Tänker mer på när man ska gå vidare.

Läste att AngularJS var "one page". Vad menas med det?

Du bygger din (singular) sida/app med hjälp av mindre "delkomponenter", views/states/directives, som du laddar in beroende av vad användaren gör.

<html> ...... <div ui-view="state1"> laddas från eget template </div> <div ui-view="state2"> laddas från annat eget template </div> ...... </html>

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av kronwalled:

Du bygger din (singular) sida/app med hjälp av mindre "delkomponenter", views/states/directives, som du laddar in beroende av vad användaren gör.

Så ungefär som AJAX då?

Men det hindrar väl inte att man har flera sidor på sin sida?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Aug 2011
Skrivet av Larsp777:

Så ungefär som AJAX då?

Men det hindrar väl inte att man har flera sidor på sin sida?

Ja, ajax. Klart du kan bygga flera helsidor, bygger i grunden på samma språk, men poängen med angular försvinner till stor del då. Angular är smidigt, återanvänder komponenter, och du jobbar oftast inte på samma vis direkt med DOM när du vill göra förändringar på sidan.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av kronwalled:

Ja, ajax. Klart du kan bygga flera helsidor, bygger i grunden på samma språk, men poängen med angular försvinner till stor del då. Angular är smidigt, återanvänder komponenter, och du jobbar oftast inte på samma vis direkt med DOM när du vill göra förändringar på sidan.

Så man har typ en sida med en meny och uppdaterar den den som inte är menyn t.ex?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Aug 2011
Skrivet av Larsp777:

Så man har typ en sida med en meny och uppdaterar den den som inte är menyn t.ex?

Så kan man göra, går även att bygga mycket mer avancerade konfigurationer. Du kan nesta de lager efter lager.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

Ok, får läsa på mer.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Apr 2006

jQuery är dåtid, AngulaJS är framtid. Men det kan vara värt att direkt sikta på AngularJS 2 istället som kommer ändra en del. Sen skulle jag nog rekommendera att titta på TypeScript också, för mig som är van att programmera lite större objektorienterade system så är det ett jättelyft framför ren Javascript med stöd för klasser, namespace osv.

Trädvy Permalänk
Medlem
Registrerad
Okt 2011
Skrivet av improwise:

jQuery är dåtid, AngulaJS är framtid. Men det kan vara värt att direkt sikta på AngularJS 2 istället som kommer ändra en del. Sen skulle jag nog rekommendera att titta på TypeScript också, för mig som är van att programmera lite större objektorienterade system så är det ett jättelyft framför ren Javascript med stöd för klasser, namespace osv.

jQuery dåtid? Hah! Snyggt att generalisera utan någon som helst insyn till vad för krav som ställs på sida som ska utvecklas.

Sen när är nyare = bättre? Och varför ska man överkomplicera saker som inte kräver det?

Trädvy Permalänk
Medlem
Plats
Knivsta
Registrerad
Nov 2002

Ett annat lite lättare alternativ till Angular är Vue.js och Knockout.js.
Använder själv Vue.js på jobbet och i egna projekt.

Systemutvecklare på Greater Than AB | Besök min hemsida och LinkedIn profil.
Hemdator: Microsoft Surface Pro 3 | Jobbdator: Microsoft Surface Pro 4 | Mobil: Nexus 6P.

Trädvy Permalänk
Medlem
Registrerad
Apr 2006
Skrivet av Hubbee:

jQuery dåtid? Hah! Snyggt att generalisera utan någon som helst insyn till vad för krav som ställs på sida som ska utvecklas.

Sen när är nyare = bättre? Och varför ska man överkomplicera saker som inte kräver det?

Ja, kanske var lite väl otydlig där. Om man typ jobbar på PR byrå och ska göra en "ball hemsida" så har nog jQuery sina förelar iom att det är enklare, ska man däremot göra en riktig webbapplikation i ett lite större projekt så skulle jag alla gånger fördra AngularJS med TypeScript för det. JavaScript är överlag ett rätt begränsat språk men med TypeScript blir det lite lättare att strukturera även lite större kodmängder.

Tror dock att användningen av jQuery kommer fortsätta minska till förmån för mer utvecklade varianter som AngularJS med flera så står man i valet och kvalet att lära sig någon av dem skulle jag alla gånger rekommendera AngulaJS. Men sett till historiken så lär det om 1-2 år vara helt nya JS bibliotek som gäller

Trädvy Permalänk
Medlem
Registrerad
Aug 2011
Skrivet av improwise:

Tror dock att användningen av jQuery kommer fortsätta minska till förmån för mer utvecklade varianter som AngularJS med flera så står man i valet och kvalet att lära sig någon av dem skulle jag alla gånger rekommendera AngulaJS. Men sett till historiken så lär det om 1-2 år vara helt nya JS bibliotek som gäller

Det tror jag inte så länge Google står bakom det. Större förändringar som v1 -> v2 kanske sker, men får man gissa hejvilt tror iaf inte jag att AngularJS i sig bara försvinner.

Trädvy Permalänk
Medlem
Registrerad
Apr 2006
Skrivet av kronwalled:

Det tror jag inte så länge Google står bakom det. Större förändringar som v1 -> v2 kanske sker, men får man gissa hejvilt tror iaf inte jag att AngularJS i sig bara försvinner.

Nä, försvinner lär det inte göra men JavaScript folk brukar ju vara mer otrogna än svenska väljare när det gäller att hålla sig till samma sak längre än ett halvår

Trädvy Permalänk
Medlem
Registrerad
Aug 2011
Skrivet av improwise:

Nä, försvinner lär det inte göra men JavaScript folk brukar ju vara mer otrogna än svenska väljare när det gäller att hålla sig till samma sak längre än ett halvår

Hehe ja det har verkligen hänt saker inom JS. Enda anledningen är just att Google som står bakom tror jag betyder en del för dess framtida existens.

Trädvy Permalänk
Medlem
Registrerad
Dec 2013

Jag har kört React ett tag och gillar det väldigt mycket Dock är det inte ett komplett ramverk som Angular utan mer utav ett enkelt renderingsramverk.

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

Jag tycker det är stressande att det hela tiden är nya saker man ska lära sig med webbutveckling.

Först ska man sätta sig in i en sak, sedan en annan. Hur ser ni på det?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Apr 2006
Skrivet av Larsp777:

Jag tycker det är stressande att det hela tiden är nya saker man ska lära sig med webbutveckling.

Först ska man sätta sig in i en sak, sedan en annan. Hur ser ni på det?

Håller helt med, dessutom tycker jag det är tveksam om det ny verkligen tillför något. Speciellt gäller detta inom "klientprogrammering", hoppa att AngularJS kanske kan bli någon slags standard nu och med Google bakom så borde en del kunna tala för det. Dock väntar jag för egen del in AngularJS 2.0 innan jag försöker göra några större system med det, så vida det inte är en site som verkligen måste vara "höginteraktiv" (typ Facebook).

Med en bakgrund som klassisk flerskitad OOP kille så får jag panik varje gång jag måste in i JavaScript och än en gång tvingas konstatera obefintligt stöd för klasser, namespace osv. osv. osv. som jag sett som en självklarhet senaste 10+ åren. Helt ok i lite mindre projekt men i större projekt med flera deltagare blir det snabbt en mardröm att försöka hålla reda på (dvs exakt samma problem som man ville lösa när man en gång i tiden införde OOP isf för det tidigare, typ från C till C++).

Därför känns TypeScript och AngularJS 2 som helt rätt väg att gå för att hålla ordnig även i lite större applikationer. Framtiden ligger dock helt klart i att köra på klienten (webbläsaren) tror jag...vilket för oss lite äldre känns bekant från tidigare (feta klienter), men så tenderar IT-branschen att vara rätt cyklisk också

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

Har börjat att titta på en kurs nu för Angular 1.

Där beskrivs modules som liknar Klasser. Är det något liknande?

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Medlem
Registrerad
Apr 2006
Skrivet av Larsp777:

Har börjat att titta på en kurs nu för Angular 1.

Där beskrivs modules som liknar Klasser. Är det något liknande?

Något vag fråga men skulle nog säga nej, det är inte samma sak. En modul är...en modul. JavaScript har eg inte, iaf vad jag vet, något stöd för klasser, namespace osv utan det "fejkas" i TypeScript

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
Skrivet av improwise:

Något vag fråga men skulle nog säga nej, det är inte samma sak. En modul är...en modul. JavaScript har eg inte, iaf vad jag vet, något stöd för klasser, namespace osv utan det "fejkas" i TypeScript

Skickades från m.sweclockers.com

Har förstått nu att det "egentligen" inte finns klasser i Javascript. Jag kommer från C#/Java-världen och funktioner och/eller object är väl något liknande klasser som jag förstår det.

I alla fall verkar modul fungerar ungefär som en klass i t.ex. C# där alias verkar vara som ett objekt.

Chassi: Cooler Master Stacker 831 svart || Intel i5-3570K || Asus GeForce GTX 680 DirectCU II 2GB || Asus P8Z77-V LE PLUS || Kingston HyperX Genesis 4x4GB || Intel SSD 335 180 GB || Windows 7

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

@Larsp777: korrekt utsaga här är att sättet man gör OOP i JavaScript är annorlunda än sättet C#/Java/C++ m.fl. använder så konceptet "klasser" är inte relevant i JS. Många som idag använder JS verkar komma från C#/Java-hållet och de har därför en idé om hur man ska utföra OOP. Nu är "prototype based programmering" extremt flexibelt så är ganska lätt att simulera typbaserad OOP (däremot är det omvända betydligt mer komplicerat).

De flesta som klagar på JS och främst på OOP gör det p.g.a att man inte förstår prototypbaserad OOP. Sättet TypeScript hanterar klasser borde vara väldigt familjärt för C# programmerare, föga oväntat då det är Microsoft som ligger bakom och det är "pappan" till C# som numera basar över TypeScript, Anders Hejlsberg. Skulle själv säga att TypeScript är riktigt bra, men just OOP delen är den mindre bra delen då den inte fixar vissa av de fallgropar C#/Java/C++ programmerare tenderar att kliva i när de applicerar "sin" bild av hur OOP ska göras. Kör man prototypbaserad OOP är saker som hantering this totalt logisk i JS.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Registrerad
Apr 2006
Skrivet av Yoshman:

@Larsp777: korrekt utsaga här är att sättet man gör OOP i JavaScript är annorlunda än sättet C#/Java/C++ m.fl. använder så konceptet "klasser" är inte relevant i JS. Många som idag använder JS verkar komma från C#/Java-hållet och de har därför en idé om hur man ska utföra OOP. Nu är "prototype based programmering" extremt flexibelt så är ganska lätt att simulera typbaserad OOP (däremot är det omvända betydligt mer komplicerat).

De flesta som klagar på JS och främst på OOP gör det p.g.a att man inte förstår prototypbaserad OOP. Sättet TypeScript hanterar klasser borde vara väldigt familjärt för C# programmerare, föga oväntat då det är Microsoft som ligger bakom och det är "pappan" till C# som numera basar över TypeScript, Anders Hejlsberg. Skulle själv säga att TypeScript är riktigt bra, men just OOP delen är den mindre bra delen då den inte fixar vissa av de fallgropar C#/Java/C++ programmerare tenderar att kliva i när de applicerar "sin" bild av hur OOP ska göras. Kör man prototypbaserad OOP är saker som hantering this totalt logisk i JS.

Är det inte snarare så att JavaScript skapades utan någon som helst tanke på OOP och att man i efterhand fått försöka baxa in det ändå i takt med att applikationerna växt i storlek?

Jag är dock en klassisk OOP kille som gått via C++, C# osv så min syn på OOP är så klart baserat utifrån det. T.ex. avsaknad av namespace tycker jag är minst lika jobbigt som avsaknad av klasser, känns lite som man är tillbaka på <include> tiden. Nu verkar det väl som om AngularJS 2.0 kommer byggas i TypeScript (iaf senast jag hörde) och då blir det väl genast en slags de facto standard för klientprogrammering gissar jag iom angulars styrka inom det området. Kan nog bli en utmaning för många att lära på nytt. Minns själv när man gick från C till C++, det skedde inte över en natt direkt men när man väl var där förstod man inte hur man någonsin kunnat programmera icke OOP. För mindre projekt, typ "ball hemsida" tycker jag "äkta" JavaScript är rätt ok men ska man börja bygga större applikationer tycker jag genast det blir rätt rörigt.

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av improwise:

Är det inte snarare så att JavaScript skapades utan någon som helst tanke på OOP och att man i efterhand fått försöka baxa in det ändå i takt med att applikationerna växt i storlek?

Jag är dock en klassisk OOP kille som gått via C++, C# osv så min syn på OOP är så klart baserat utifrån det. T.ex. avsaknad av namespace tycker jag är minst lika jobbigt som avsaknad av klasser, känns lite som man är tillbaka på <include> tiden. Nu verkar det väl som om AngularJS 2.0 kommer byggas i TypeScript (iaf senast jag hörde) och då blir det väl genast en slags de facto standard för klientprogrammering gissar jag iom angulars styrka inom det området. Kan nog bli en utmaning för många att lära på nytt. Minns själv när man gick från C till C++, det skedde inte över en natt direkt men när man väl var där förstod man inte hur man någonsin kunnat programmera icke OOP. För mindre projekt, typ "ball hemsida" tycker jag "äkta" JavaScript är rätt ok men ska man börja bygga större applikationer tycker jag genast det blir rätt rörigt.

OOP är bara ett sätt att modellera program, det syntaktiska socker som C++/C#/Java har för att underlätta OOP är ett sätt att göra det medan JavaScript har ett annat sätt att hantera det hela. Prototypbaserad OO är inte något som JS "uppfann" utan det användes av flera andra språk innan dess.

Beroende på vad man vill göra är typbaserad OOP (det C++/C#/Java m.fl. använder) lite enklare medan andra områden är enklare att tackla med prototypbaserad OOP. I stora drag är det förra lämpligt när det typiska är många instanser med identiskt beteende (samma klass), t.ex. simuleringar av olika slag (t.ex. spel). Det senare är mer lämpligt när man ha några enstaka eller endast en instans med exakt samma beteende, fast man har ändå många fall med väldigt snarlikt beteende, väldigt vanligt i UI-programmering.

Finns absolut inga hårda regler kring när man ska använda vad, kör man C++/C#/Java väljer man rimligen klassbaserad OOP i alla lägen där det är rimligt då språken är designade kring detta. Missen många verkar göra är däremot att man tvinga in klassbaserad OOP i JavaScript även i fall som på det stora hela bättre modelleras med prototypbaserad OOP och sedan gnäller man på att JavaScript suger när problemet egentligen är att man inte förstår JavaScript.

Jag tycker också TypeScript är en förbättring över JavaScript i större projekt, men det beror uteslutande på att TypeScript är statisk typat och fördelarna med statisk typning väger över allt mer ju större projektet blir. En av de få dåliga sakerna med TypeScript är att man försökt "fixat" objektorientering genom att lägga till syntaktiskt socker för typbaserad OOP, något som fungerar illa då de hål folk kliver i när de utför typbaserad OOP i JavaScript fortfarande finns kvar i TypeScript!

Kommer också från C++/Java hållet, men tror jag aldrig hängde upp mig speciellt mycket på JavaScript tack vare en hel del erfarenhet med LISP-programmering. Tänker man på JavaScript som LISP med C-syntax så faller bitar väldigt mycket mer på plats än om man ser JavaScript som någon form av skriptat C-språk för webben.

Vad det gäller "namespace" så är det inget större problem i NodeJS tack vare modulkonceptet där. I "ren" JS, d.v.s i webbläsare, får man ha ha egen disciplin och hålla globala namnrymden ren genom att använda lambdauttryck som görs tillgängliga via objekt som då agerar namnrymd.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Registrerad
Apr 2006

@Yoshman
Du har så klart rätt i det du skriver men det visste du nog redan innan

Till denna mer teoretiska diskussion får man väl även lägga till praktiska aspekter för att utifrån det avgöra vad som är rätt för ett specifikt fall. Jag förmodar att det t.ex. är mycket lättare att hitta programmerare som kan och känner sig bekväma med typbaserad OOP än protypbaserad OOP, vilket isf bör innebära att det blir lättare att genomföra ett sådant projekt.

Jag ser mig inte själv på något sätt som en superprogrammerare utan är väl mer av en brunkarprogrammerare på så sätt att det jag gör brukar drivas av affärskrav. I praktiken mer handla om att få något klart snabbt och effektivt så det kan börja ticka in pengar än något som ökar mina chanser att bli årets programmerare i Computer Sweden. Kan utan omsvep erkänna att även om jag känner till begreppet prototypbaserad OOP så är mina kunskaper, och framför allt, erfarenheter av det minimala.