Varför skriver folk GUI för hand?

Permalänk

Varför skriver folk GUI för hand?

Jag har märkt en sak. Folk skriver GUI för hand.
Varför, när det finns wysiwyg?

Visst, många kanske tycker att det går snabbare. Men går det verkligen snabbare om någon annan ska läsa det?

Permalänk
Medlem
Skrivet av heretic16:

Jag har märkt en sak. Folk skriver GUI för hand.
Varför, när det finns wysiwyg?

Visst, många kanske tycker att det går snabbare. Men går det verkligen snabbare om någon annan ska läsa det?

Om du menar Webb? Så är det för att det inte finns ngn wysiwyg som klarar av att göra koden

1. läsbar
2. responsiv
3. mobil first

Förr i världen så var det "OK" med position absolute och exakta X,Y,Z värden på varje HTML element, men så kan man inte bygga idag

// LZ

Permalänk
Medlem

För att det är coolare

Visa signatur

Ryzen 7 5800X3D | MSI 4090 Suprim Liquid X | Gigabyte Aorus X570 XTREME | 64GB Vengeance RGB Pro 3600MHz | Corsair MP600 M.2 - 500GB | Corsair MP600 M.2 - 2TB | Samsung 970 EVO 1TB M.2 | EVGA Supernova G2 1300W | Phanteks Eclipse P500A DRGB | Alienware 34" QD-OLED – AW3423DW

Permalänk
Skrivet av Tea42BBS:

Om du menar Webb? Så är det för att det inte finns ngn wysiwyg som klarar av att göra koden

1. läsbar
2. responsiv
3. mobil first

Förr i världen så var det "OK" med position absolute och exakta X,Y,Z värden på varje HTML element, men så kan man inte bygga idag

// LZ

Jag menar mest för mobil. Men webb är samma sak.
Jag tycker det är rent plågsamt att skriva XML kod. Känns som wxWidgets har hittat tillbaka.

Permalänk
Medlem
Skrivet av heretic16:

Jag menar mest för mobil. Men webb är samma sak.
Jag tycker det är rent plågsamt att skriva XML kod. Känns som wxWidgets har hittat tillbaka.

det är plågsamt WPF/XAML är en plåga - förhoppningsvis så får vi bättre editorer etc... men nu är det inte QL

HTML/CSS tycker jag är OK - så länge man bygger "normala" saker så blir det inte så fasligt mnycket "taggande"

Permalänk
Medlem
Skrivet av heretic16:

Jag har märkt en sak. Folk skriver GUI för hand.
Varför, när det finns wysiwyg?

Visst, många kanske tycker att det går snabbare. Men går det verkligen snabbare om någon annan ska läsa det?

Med hot-reload så kodar du och ser resultatet direkt. Så behovet minskar helt klart på grund av det.

Att rendera UI är också komplext. Åtminstone för HTML så behövs en fullfjädrad javascript motor för att få rätt på alla detaljer. Så snart din editor inte hänger med och visar ett annat resultat än det faktiska, så kommer utvecklaren tappa förtroende för den.

Sen har WYSIWYG editorer stora nackdelar när projekten växer.

1. Det går långsamt att få resultat
2. Det är inte bra på att refaktorisera, vilket gör koden svår att läsa och potentiellt långsam.
3. Inbyggda "best practices" i editorn blir lätt omodern eller passar inte teamets krav.
4. Det är inte script-bart, så du kan inte skapa snippets eller annan tooling (såsom GitHub Copilot) ovanpå för att utföra monotona uppgfter mer effektivt.

Det är ingen slump att HTML-editorer som Dreamweaver har dött ut.

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk

Jag hatar skriva GUI för hand. Jag har gjort det mycket långt bak i tiden. Mina första programmeringskurser så skrev precis hela Windows GUI med allt för hand och man kunde ej få någon feedback före man kompilerade och testkörde.

Problemet idag är att man kodar i hur många olika miljöer som helst, helt olika språk, helt olika gränssnitt, helt olika apparater som det visas i.
Självklart kan man lägga ner tid på att lära sig tusentals olika syntax, eller så kanske man kan lägga tiden på annat.

Min fördom emot de som skriver mycket inteface för hand är just att de sysslar med väldigt få miljöer för att inte totalt överbelasta deras hjärna.

Det finns dock scenarier som automatgenerera saker. Även om lösningar med automatgenerera sidor känns lite som att man jobbar på fel sätt. (mycket samma data på fler ställen). Men det beror i vilken miljö man jobbar med.

Permalänk
Skrivet av Tea42BBS:

Om du menar Webb? Så är det för att det inte finns ngn wysiwyg som klarar av att göra koden

1. läsbar
2. responsiv
3. mobil first

Förr i världen så var det "OK" med position absolute och exakta X,Y,Z värden på varje HTML element, men så kan man inte bygga idag

// LZ

Jag kommer tydligen från före förr i världen, där innehåll kom först och man inte hade position:absolute på något element.

Man pratar mycket om content-first. Men man menar det inte, egentligen. Speciellt inte nu när så mycket förvandlar en webbsida till en annons med tracking, puffar, highlights - och gigantiska bilder och fonter som tar eoner att scrolla igenom, när en bild och en kort text kunde förmedla samma produktinformation. Det har blivit yta.

När yta är viktigt, blir allehanda bombardemang av sinnena viktiga. Animationer, saker att hovra över (endast desktop), eller 5 steg för att ersätta ett klick (endast mobil).

Sedan 2015 har vi ett etablerat, robust ramverk i samtliga webbläsare utom 1 (som äntligen t.o.m. upphovsmännen försöker avrätta). Detta ramverk räcker utomordentligen till för att presentera all information som yta presenterar idag. Ramverket heter PHP7 + HTML5 + CSS3 + EC2015.

Shit, utläggning. Jag stannar där. Stöd ovanstående, så gör du rätt. Allt annat är tillfälliga nycker som inte varar länge. Och man kan göra roliga GUI i det, och ju mindre Javascript desto mer renodlat och fint.

Visa signatur

[4790k@4.6]+[RTX 3070 OC]+[16GB]+[4x SSD]+[NZXT+700W Gold]+[Win7]+[2x Samsung SA27950D <3]+[Topre TKL]+[G403 Hero wired]+[HyperX Cloud Alpha S]+[KingKong 2 Pro]. ZBook 17 G5, Quadro P3200, Win11.

Permalänk
Medlem
Skrivet av HolyFather:

Jag kommer tydligen från före förr i världen, där innehåll kom först och man inte hade position:absolute på något element.

Man pratar mycket om content-first. Men man menar det inte, egentligen. Speciellt inte nu när så mycket förvandlar en webbsida till en annons med tracking, puffar, highlights - och gigantiska bilder och fonter som tar eoner att scrolla igenom, när en bild och en kort text kunde förmedla samma produktinformation. Det har blivit yta.

När yta är viktigt, blir allehanda bombardemang av sinnena viktiga. Animationer, saker att hovra över (endast desktop), eller 5 steg för att ersätta ett klick (endast mobil).

Sedan 2015 har vi ett etablerat, robust ramverk i samtliga webbläsare utom 1 (som äntligen t.o.m. upphovsmännen försöker avrätta). Detta ramverk räcker utomordentligen till för att presentera all information som yta presenterar idag. Ramverket heter PHP7 + HTML5 + CSS3 + EC2015.

Shit, utläggning. Jag stannar där. Stöd ovanstående, så gör du rätt. Allt annat är tillfälliga nycker som inte varar länge. Och man kan göra roliga GUI i det, och ju mindre Javascript desto mer renodlat och fint.

Jag tror du citerade fel person, jag är inte TS

// LZ

Permalänk
Medlem
Skrivet av heretic16:

Jag menar mest för mobil. Men webb är samma sak.
Jag tycker det är rent plågsamt att skriva XML kod. Känns som wxWidgets har hittat tillbaka.

Huh, vad har wxWidgets för XML markup? Jag skriver mina UIn i wxWidgets för hand nu i C++ :\

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Medlem

Versionshantering är mycket tydligare och robustare.
Vet inte riktigt hur det fungerar med wysiwyg, jämnföra två screenshots? 😆

Permalänk
Medlem
Skrivet av HolyFather:

Jag kommer tydligen från före förr i världen, där innehåll kom först och man inte hade position:absolute på något element.

Man pratar mycket om content-first. Men man menar det inte, egentligen. Speciellt inte nu när så mycket förvandlar en webbsida till en annons med tracking, puffar, highlights - och gigantiska bilder och fonter som tar eoner att scrolla igenom, när en bild och en kort text kunde förmedla samma produktinformation. Det har blivit yta.

När yta är viktigt, blir allehanda bombardemang av sinnena viktiga. Animationer, saker att hovra över (endast desktop), eller 5 steg för att ersätta ett klick (endast mobil).

Sedan 2015 har vi ett etablerat, robust ramverk i samtliga webbläsare utom 1 (som äntligen t.o.m. upphovsmännen försöker avrätta). Detta ramverk räcker utomordentligen till för att presentera all information som yta presenterar idag. Ramverket heter PHP7 + HTML5 + CSS3 + EC2015.

Shit, utläggning. Jag stannar där. Stöd ovanstående, så gör du rätt. Allt annat är tillfälliga nycker som inte varar länge. Och man kan göra roliga GUI i det, och ju mindre Javascript desto mer renodlat och fint.

Oj, om alla tänkte så så skulle utvecklingen stanna av.
Och aldrig att jag kommer stödja JS. Krafter har redan börjar försöka påverka en förändring. Blazor är första steget bara. Snart kanske en webbmotoe helt utan JS kommer.

Hålla sig till ett ramverk och tro att man gör rätt skapar en dålig utvecklare. Först styrkan o svagheter i de som finns och använd det som behövs. Då går vi framåt

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Permalänk
Medlem
Skrivet av kinkyboo:

Versionshantering är mycket tydligare och robustare.
Vet inte riktigt hur det fungerar med wysiwyg, jämnföra två screenshots? 😆

Olika former av WYSIWYG genererar naturligtvis kod som kan källkodsgenereras och diffas. Hur lätt det är att diffa beror förstås på vilket verktyg man använder. WYSIWYG är inte magiskt.

Jag har erfarenhet av Windows Forms och WPF. Windows Forms (som är drag and drop i Visual Studio) genererar en vanlig C#-fil per kontroll/fönster som genererar UI:t. Detta skiljs från kodfilen som styr interaktivitet. Man får direkt feedback hur formuläret/kontrollen ser ut, utan att kompilera om eller köra programmet. Det går att skriva kodfilen manuellt i stället, vilket jag gjort när jag kodat Windows Forms-UI för Mono/Linux.

I WPF (Windows Presentation Foundation) tror jag också det finns drag-and-drop i Visual Studio, men där har jag bara kodat XAML-filer manuellt. XAML är ett XML-format som definierar UI:t, koden som renderar UI:t ligger i ramverket, den skriver man inte själv i normalfallet, även om det går. Om man kodar XAML manuellt i Visual Studio så får man direkt feedback i ett fönster hur ens ändringar ser ut, utan att kompilera eller köra programmet. Interaktiviteten styrs av en C#-fil.

WYSIWYG är ett bra stöd för oss som inte kodar GUI så ofta. Jag håller mig helst till backend i stället eftersom inte varenda jävel har en åsikt om hur det ser ut…

Permalänk
Hedersmedlem
Skrivet av KAD:

Jag har erfarenhet av Windows Forms och WPF. Windows Forms (som är drag and drop i Visual Studio) genererar en vanlig C#-fil per kontroll/fönster som genererar UI:t.

Det är dock inte roligt att försöka lista ut vad som har hänt genom att titta i git. Att göra en knapp en pixel bredare kan mycket väl kasta om stora delar av de genererade filerna (så det ser ut som hundratals ändringar). I Forms alltså, WPF har inte samma problem men där är det stor risk att element får absolut placering om man råkar modifiera dem grafiskt.

Permalänk
Skrivet av Elgot:

Det är dock inte roligt att försöka lista ut vad som har hänt genom att titta i git. Att göra en knapp en pixel bredare kan mycket väl kasta om stora delar av de genererade filerna (så det ser ut som hundratals ändringar). I Forms alltså, WPF har inte samma problem men där är det stor risk att element får absolut placering om man råkar modifiera dem grafiskt.

När det gäller Windows Forms VS WPF så vinner WPF stort för mig. Det är flera generationer bättre och allt känns riktigt bra.
Detta tills jag ska göra något grundläggande som ta en datagridbox färglägga cellerna efter vad det är för värde m.m. Och jag inser att arbetet som jag vill göra i WPF tar en evighet, men löses enkelt med copy & paste från den första Google träffen man får upp för Windows Forms.
Och när man sedan är skitdyr per timma, så blir resultatet att jag oftast kör Windows Forms än idag.

Mina C# applikationer är dessutom ofta olika interface för drivers, testverktyg och liknande, detta interface är inte det viktigaste. Jag stör mig skitmycket på att jag fortfarande använder Windows Forms, men det blir så då pengar styr och kund vill ha den billigaste lösningen.

Permalänk
Hedersmedlem
Skrivet av lillaankan_i_dammen:

När det gäller Windows Forms VS WPF så vinner WPF stort för mig. Det är flera generationer bättre och allt känns riktigt bra.
Detta tills jag ska göra något grundläggande som ta en datagridbox färglägga cellerna efter vad det är för värde m.m. Och jag inser att arbetet som jag vill göra i WPF tar en evighet, men löses enkelt med copy & paste från den första Google träffen man får upp för Windows Forms.

Det är ju väldigt kraftfullt, men tyvärr måste man ju ofta skriva (eller snarare kopiera från Blend) hundratals rader nästlad xml för att åstadkomma även en mindre förändring. Och inte blir det bättre av att man i processen lätt skriver över egenskaper som har definierats någon annanstans (så att cellen nu kanske fick rätt färg, men istället inte längre har samma ram som övriga). Det hade varit önskvärt om man kunde ärva stilar och bara ange saker som man faktiskt vill ändra.

Skrivet av lillaankan_i_dammen:

Mina C# applikationer är dessutom ofta olika interface för drivers, testverktyg och liknande, detta interface är inte det viktigaste. Jag stör mig skitmycket på att jag fortfarande använder Windows Forms, men det blir så då pengar styr och kund vill ha den billigaste lösningen.

En annan trevlig egenskap är att man lätt kan dra ut några kontroller och enkelt få det att se ut som en ”vanlig” applikation. Med WPF kommer typiskt kontrollerna ligga kant i kant och knappar och liknande vara ihoptryckta. Det går förstås att specificera allt så det blir som man vill, men det går åt en hel del jobb.

Permalänk
Medlem
Skrivet av Tea42BBS:

Om du menar Webb? Så är det för att det inte finns ngn wysiwyg som klarar av att göra koden

1. läsbar
2. responsiv
3. mobil first

Förr i världen så var det "OK" med position absolute och exakta X,Y,Z värden på varje HTML element, men så kan man inte bygga idag

// LZ

Har det någonsin varit ok egentligen? Om något så har väl de grafiska verktygen idag evolverat mer åt what you see is what you get via diverse responsiva element man kan dra ut och lägga i rutnät, kolumner etc.

Så om något har wysiwyg blivit mer accepterar idag. Men ska man göra något på riktigt så kommer det bli totalt kaos och ska man göra minsta lilla grej utanför vad ramverket klarar så måste man koda ändå.

Någon nämnde versionshantering som en skillnad, men det kan jag inte hålla med om. Wysiwyg bygger mest troligt på ett textdokument med typ xml, json, yaml etc i bakgrunden och det är inga problem att versionshantera (i teorin).

Permalänk
Hedersmedlem
Skrivet av Massy:

Någon nämnde versionshantering som en skillnad, men det kan jag inte hålla med om. Wysiwyg bygger mest troligt på ett textdokument med typ xml, json, yaml etc i bakgrunden och det är inga problem att versionshantera (i teorin).

Det största problemet är som sagt att det förmodligen inte ens är säkert att man får samma resultat om man sparar samma sak två gånger. Att byta plats på två xml-attribut gör ingen skillnad, men det kommer troligen se ut som en ändring.

Permalänk
Medlem

Men man kan vända på frågan, varför vill man ha en VYSIWYG-editor överhuvudtaget? Det är långsammare, mindre presist och kommer alltid sakna funktioner.

Och ni som inte håller med förstår nog inte vad jag menar. Sätt er då i Figma under några veckor och lär er det ordentligt. Sedan sätter ni er i Windorms editor eller Blend eller någon annan WYSIWYG. Det går inte att jämföra! Ändå går det att få ditt UI att se ut som du ritat i Figma.

Det finns projekt för att ta en ritning i Figma och översätta den till React komponenter till exempel. Jag tror det kan vara en bra mellanväg att få hjälp med scaffolding, men när man väl har en startpunkt så är det effektivast att köra kod efter det. Det är lättare att underhålla, refaktorisera och se ändringar som gjorts.

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere

Permalänk
Medlem

Som vanligt när vi diskuterar här på SWEC så måste vi inste att vi har väldigt olika bakgrund. Det finns mjukvaruutvecklare här med 20+ års erfarenhet och samtidigt studenter som gör Programmering 1 på gymnasiet. Många av av argumenten kring underhåll och effektivitet är irrelevanta för små hobbyprojekt och enmansprojekt. Där kan man göra det som känns bäst för stunden och kan lätta byta om man ångrar sig.

Visa signatur

Louqe Ghost S1 MK3 | Asus ROG Strix B660-I Gaming WiFi | Intel Core i7 12700K | nVidia RTX 2070 Super FE | Corsair 64GB (2x32GB) DDR5 5600MHz CL40 Vengeance | Samsung 980 PRO M.2 NVMe SSD 2TB | Corsair SF750 750W 80+ Platinum | Noctua NH-L12 Ghost S1 edition | Kablar från pslate customs | 2 stk Dell Ultrasharp 3014 | Logitech MX Keys | Logitech MX Anywhere