Applicaties ontwikkelen

sinvayne

Member
Ik ben al een tijdje aan het denken om bepaalde (financiële) processen binnen ons bedrijf te optimaliseren d.m.v. toepassingen.
Daarbij denk ik bijvoorbeeld aan het aanmaken van facturen en dergelijke meer.
Zelf heb ik al een tijdje een gezonde interesse in app development en zou me dus graag zelf hierin wat verdiepen om zodoende praktisch te kunnen experimenteren.
Er zijn ondertussen echter zoveel coderingstalen dat ik niet goed kan inschatten welke taal de breedste basis zou kunnen vormen. Ik zou me immers niet graag toeleggen op één bepaalde taal, waarbij er uiteindelijk blijkt dat ik me toch beter in een andere had verdiept...
C++? Python? Java? HTML? Ruby?
Wat zijn jullie meningen hieromtrent? Met welke taal kan ik het beste een robuust prototype ontwikkelen om bepaalde processen te automatiseren?

Zelf neig ik momenteel het meeste naar Python.
 
Ten eerste, focus u wél op 1 taal om te beginnen. Leren programmeren doe je niet in 5 talen tegelijk (zeker niet in zelfstudie). Je gaat het uzelf gewoon extreem lastig maken & het zal niet vooruit gaan. Wie weet geef je 't dan gewoon op.

Je begint met de concepten (taal onafhankelijk) & die leer je uitwerken door testprojectjes te maken.
Het zal u enkel maar vooruit helpen als je slechts 1 syntax tegelijkertijd moet gewoon worden. Ook slechts de features leren kennen van 1 framework tegelijkertijd (bv. Java of .NET).

Het gedeelte 'syntax' (wat dus wel taalafhankelijk is) is maar een klein deel van de 'programming experience'.
Eens je vlot kan programmeren in 1 taal is het over 't algemeen geen grote ramp om er een 2e gelijkaardige taal bij te nemen wanneer dit nodig zou zijn. Neem bv. C# vs Java. Als je C# ervaring hebt kan je gerust, met wat moeite uiteraard, Java leren zonder dat je terug moet leren programmeren. Syntax is zelfs gelijkaardig.
Uiteraard verschillen de aangeboden features in 't framework ook, maar we moeten daar hier niet te diep op in gaan.

Ga je van C#/Java (compiled languages) naar een scripting language a la Python, dan is dat uiteraard een andere mindset & een andere syntax.
Ik heb dit echter zelf ooit moeten doen & dat lukt opnieuw zonder opnieuw te leren programmeren.

Je moet uiteraard al de verschillen in aanpak e.d. begrijpen tussen compiled languages & scripting languages, mor soit.
Ik zou zo bv. niet kiezen voor Python als je van plan bent om front-end UI-driven apps te bouwen.

HTML is geen programmeertaal, so yeah. Als je bedoelt 'web apps', dan is dit uiteraard veel meer dan enkel HTML. Web DEV space is verder ook ginormous, gaande van vanilla HTML5 (HTML, CSS, JS) tot full blown Angular apps, React apps & lord knows how many other frameworks er constant uit de grond schieten tegenwoordig.
Ruby ... naar 't schijnt populair in the big ol' US of A, maar hier kom je dat nauwelijks tegen voor zover ik weet.
C(++) ... zou ik niet aan beginnen voor front-end application development. Ga dan voor C# als je voor de Microsoft stack wilt kiezen.

Uiteraard zal je om een werkend resultaat te krijgen meer nodig hebben dan slechts 1 front-end applicatie. Je zal minimum ook een DB nodig hebben, mss nog wat back-end services & who knows what else je nog wilt maken.

Maar als je wil starten from scratch, in zelfstudie ... begin met 1 ding tegelijk.
 
Als het om een Windows omgeving gaat zou ik geneigd zijn om C# aan te bevelen. Voor user interfaces te maken gaat dat veel gemakkelijker zijn dan pakweg Java met een HTML frontend eraan. C# heeft een mooie ontwikkelingsomgeving (Visual Studio), waar je gemakkelijk een user interface mee gaat kunnen maken. 't Is zelfs één van de weinige omgevingen die ik ken waar je zonder veel kennis en moeite een UI mee kan maken (Lazarus is er nog zo één, maar blijf daar maar van weg, da's te niche).

C# is wel georiënteerd op Windows omgevingen. Maar voor een prototype te ontikkelen wat daarna eventueel wat uitgebreid wordt lijkt me dat wel een goede keuze.
 
Als het om een Windows omgeving gaat zou ik geneigd zijn om C# aan te bevelen. Voor user interfaces te maken gaat dat veel gemakkelijker zijn dan pakweg Java met een HTML frontend eraan. C# heeft een mooie ontwikkelingsomgeving (Visual Studio), waar je gemakkelijk een user interface mee gaat kunnen maken. 't Is zelfs één van de weinige omgevingen die ik ken waar je zonder veel kennis en moeite een UI mee kan maken (Lazarus is er nog zo één, maar blijf daar maar van weg, da's te niche).

C# is wel georiënteerd op Windows omgevingen. Maar voor een prototype te ontikkelen wat daarna eventueel wat uitgebreid wordt lijkt me dat wel een goede keuze.
A propos, dit is al een hele tijd niet meer waar.
.NET Core is volledig cross-platform.

Wil je effectief nog naar Framework builden, dan wel, dit is WinOS only.
Ook is Java perfect geschikt om apps voor WinOS te bouwen & releasen, incl. UI apps.

MAAR ... onafhankelijk 't feit dat ik eigenlijk ook een Microsofter ben, zou ik toch de MS stack aanraden boven Java. Dit wegens de grote uniformiteit overheen de verschillende technologieën.
Of je nu voor Web bouwt met MVC of Windows met XAML-driven WPF apps of Windows services zonder UI, etc. De manier van werken is redelijk gelijkaardig overheen al die zaken.
Zelfs voor mobile lukt het in C# via Xamarin (als je geen native Android/IOS apps wilt gaan maken).

Java daarentegen ... jah ... als je van 'vanilla Java' ineens naar JSP of STRUTS of zoiets zou moeten ... da's lijk iets volledig anders.
Was tegelijkertijd ook de reden dat ik ooit voor Mickey gekozen heb (meestal kies je in BE 1 van die 2, niet beide).

VS biedt ook een gratis versie waarmee je kan starten, maar Eclipse voor Java is ook gratis.

Microsoft Power Automate, het low code platform van Microsoft, is bij uitstek geschikt voor de dingen die jij wil doen.

Aanmaken van facturen? --> https://plumsail.com/docs/documents/v1.x/flow/how-tos/documents/create-html-from-template.html

Kijk ook zeker eens naar Microsoft Power Apps, waarmee je zakelijke canvas of smartphone apps kunt maken.
Hangt er weliswaar wat vanaf wat em nog allemaal van plan is, maar als je niet meer nodig hebt dan een klein canvas app'ke, why not eh.
Je zal wel een licentie moeten betalen voor PowerApps e.d. (afhankelijk van de O365 tier wss)

In 't geval van facturen & documenten is het meestal wel niet zo simpel als wat HTML genereren met wat replacement tokens in & call it a day.
Vrijwel elke klant wil bv. al snel een PDF document. :sneaky:
 
Wil je een grafische user interface kunnen aanbieden? Dat maakt het uiteindelijk toch wat lastiger. Er is naar mijn mening na 20 jaar nog steeds niets wat het gemak van VB6 overtreft. Ok, daar waren ook veel nadelen aan, maar toch.

Python is eigenlijk ideaal om snel scriptjes te maken met minder overhead dan Java of C#. Veel bibliotheken ook om echt vanalles te bereiken en cross-platform. Basic GUI kan je dan met TK maken, of PyQT voor meer fancy GUI's.
 
A propos, dit is al een hele tijd niet meer waar.
.NET Core is volledig cross-platform.
Met georiënteerd op bedoelde ik eigenlijk dat het ervoor ontworpen is, en dan inderdaad vooral het User Interface gedeelte. Het andere stuk van de .NET gebaseerde talen zijn inderdaad platform onafhankelijk.

Ik ben trouwens een Java programmeur, en puur vanwege het feit dat er geïmpliceerd wordt dat een GUI nodig is raad ik eerder C# aan. Nu weet ik de laatste stand van zaken niet, maar vroeger was het ontwikkelen van een GUI in Java zo'n nachtmerrie dat ik er al meer dan 10 jaar niet meer naar gekeken heb. Een GUI die je in Visual Studio in 5 minuten in elkaar klikte was je met Java uren mee bezig. Om vervolgens met een klodder code te eindigen waar je schrik van had om een aanpassing in te moeten doen.

Het zal allemaal wel geëvolueerd zijn, maar gezien de mindere aandacht die in de java wereld naar GUI's gaat geloof ik nooit dat ze dat gat toegereden hebben.

Over Python kan ik maar weinig zeggen. Ik ken het vooral als een scripting taal, maar er worden ook volledige applicaties in gemaakt tegenwoordig. Maar of dat vlot programmeert weet ik niet, aangezien het een moderne taal is zal dat wel meevallen.
 
Met georiënteerd op bedoelde ik eigenlijk dat het ervoor ontworpen is, en dan inderdaad vooral het User Interface gedeelte. Het andere stuk van de .NET gebaseerde talen zijn inderdaad platform onafhankelijk.

Ik ben trouwens een Java programmeur, en puur vanwege het feit dat er geïmpliceerd wordt dat een GUI nodig is raad ik eerder C# aan. Nu weet ik de laatste stand van zaken niet, maar vroeger was het ontwikkelen van een GUI in Java zo'n nachtmerrie dat ik er al meer dan 10 jaar niet meer naar gekeken heb. Een GUI die je in Visual Studio in 5 minuten in elkaar klikte was je met Java uren mee bezig. Om vervolgens met een klodder code te eindigen waar je schrik van had om een aanpassing in te moeten doen.

Het zal allemaal wel geëvolueerd zijn, maar gezien de mindere aandacht die in de java wereld naar GUI's gaat geloof ik nooit dat ze dat gat toegereden hebben.

Over Python kan ik maar weinig zeggen. Ik ken het vooral als een scripting taal, maar er worden ook volledige applicaties in gemaakt tegenwoordig. Maar of dat vlot programmeert weet ik niet, aangezien het een moderne taal is zal dat wel meevallen.
Ik heb er Python moeten bij nemen bij een klant van ons (2j lang on-site). Is toch al meer dan een jaar geleden, maar kan er wel wat over zeggen.
Echter waren dat voornamelijk server-side scheduled scripts. Python is ook goed gekend in zake data analytics packages, dus BI. Transformatie in PowerBI bv. was mogelijk met Python/R.

Echter, als je echt van plan bent om front-end UI driven apps te bouwen ... 'k zou toch echt niet voor Python gaan.
De tooling komt voor gene meter in de buurt van de Visual Studio .NET experience (& yes, ge kunt Python doen in VSCode).

Maar heel dat gezever met die virtual environments die vrijwel verplicht is als je meer dan 1 app op uw machine wilt maken/hosten. Pffft, en dat werkt alles behalve ideaal. Package management en packaging van de app en alles daar rond is echt niet op niveau als je .NET gewoon zijt.
Ik ben zo wel wat shareware dingen tegen gekomen die zouden bestaan om er .exe's van te maken (& zo dus meer end-user friendly te zijn wss), maar die had ik niet ter beschikking, dus kan daar weinig over zeggen.

NuGet + Packages management in een project, incl. z'n minpunten blazen alles dat Python ter beschikking had uit het water. Ook had Python niets 'officieel' in zake package management & application packaging.
Enige dat wat universeel gebruikt wordt is 'pip' zelf, dus de package 'downloader' pretty much.
Je moest maar een aanpak kiezen, dan de laatste versie van dat package ophalen & hopen dat het werkte & up-to-date gehouden werd.
PipEnv had al +1j geen release meer gehad, dus alle bugs moest je er bij nemen.

A propos ... de taal zelf ... goh ... it's fine. 't Is een scripting language eh. No official typing, no nothing.
In recente versies hebt ge wel type-hints. It's a start I guess.
Linting suckte, werkte vrijwel nooit correct. Dus dat komt uiteraard niet in de buurt van een compiled language a la C# (of zelfs TypeScript, nochthans ook een scripting lang, weliswaar bovenop een fully untyped lang mor soit).

Java heb ik zelf al 15 jaar niet meer gedaan wss, dus jah. Ga er ook niet te veel over uitweiden. :whistle:
 
Terug
Bovenaan