Laden...

Mit welcher Technologie läuft VSCode?

Erstellt von Davaaron vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.876 Views
D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 5 Jahren
Mit welcher Technologie läuft VSCode?

Hi,

ich habe mir letztens mal den Source Code von VS Code angeguckt, weil ich wissen wollte, wie die ihren Texteditor und das Syntax-Highlighting inklusive kompilieren, etc. gestalten.
Leider habe ich die Orte des Geschehens nicht ausfindig machen können, aber was mich am meisten verstutzte: Es ist ja alles in JavaScript/TypeScript.

Da hat sich mir die Frage aufgetan, wie das eigentlich möglich ist? Kann mir jemand erklären, wie man das hinbekommt?
Heißt das im Endeffekt, dass man WebApps auf dem Desktop laufen lassen kann? (Ich weiß, dass oftmals der umgekehrte Weg das Ziel war: WPF, Java SWT/FX)

Interessant wäre das, denn da könnte ich für das Web entwickeln und hätte gleichzeitig eine Alternative, falls der User lieber ein Programm statt einer Website hätte (beispielsweise wie BlueJeans es macht).

Und noch was: Wenn es möglich ist, JS/TS auf dem Desktop laufen zu lassen, hat man dann vollen Zugriff auf das unterliegende OS (beispielsweise Dateien öffnen, schließen, löschen, watchen, Registry, cmd)?

Habt ihr vielleicht Stichworte, mit deren Hilfe ich mich schlauer machen könnte? Wie ihr merkt, hab ich nur ein sehr schwammiges Bild von dem Ganzen.

709 Beiträge seit 2008
vor 5 Jahren

Hi Davaaron,
schau dir mal das Electron-Projekt an.

16.835 Beiträge seit 2008
vor 5 Jahren

Viele Tools laufen auf Electron und nur basierend auf JavaScript/TypeScript; angeführt von Slack, Microsoft Teams, VSCode, Azure Data Studio, Atom....

VSCode stammt eigentlich aus dem Project Monaco: dem Editor in Visual Studio Team Services (heute Azure DevOps).
Dahingehend ist böse gesagt VSCode ein Abfallprodukt: das erfolgreichste in der Microsoft Historie.

Vorteil ist natürlich: immer weniger Leute bzw. Firmen wollen eigentlich reine Windows Applikationen auf WinForms oder WPF.
Primär wollen Firmen eigentlich verteilte Applikationen; am einfachsten auf einem zentralen Server um die Updates gering zu halten und die Arbeitsfähigkeit hoch zu halten.

Und mit Technologien wie Electron baut man Webapplikationen, die eben dann auch auf dem Desktop laufen.
Gerade Teams ist ein super Beispiel: das erste Produkt der Office Familie, das komplett im Web gestartet ist, dann auf dem Desktop kam - und das auf Windows, Mac und Linux.
Schaut man auf den Rest der Office Suite, dann sieht das schon anders aus:
Die Webversion ist die aktuellste, Windows und Mac-Versionen sehen komplett verschiedene aus und die mobilen Anwendungen haben noch mal eine ganz andere Basis; Linux gibt es gar nichts.
Würde Microsoft hier auch Electron als Basis nehmen, wären ausnahmslos alle Plattformen auf komplett abgedeckt - inkl. Linux und sogar noch Windows RT/Windows S bzw. Windows 8 und Mobile.

Und ja: JavaScript tut nicht weh (und TypeScript fühlt sich an wie C#).

D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 5 Jahren

Electron sieht ja mal interessant aus. Das werde ich mir mal genauer angucken.

Tja, also ich dachte bislang noch, dass diese Apps jeweils zwei unterschiedliche Programme mit unterschiedlicher Codebase sind. Aber ich habe dennoch hinterfragt, wie gerade Microsoft (WinForms/WPF) es geschafft hat, VS Code für Linux & Mac zu entwickeln. Jetzt weiß ich's.

Danke für eure Antworten.

Ich gucke mir mal an, wie aufwändig Electron ist. Da heute sowieso viel mehr WebApps programmiert werden, wäre es ja praktisch, damit auch automatisch Apps für den Desktop zu programmieren.
Fehlt nur noch die mobile Entwicklung 😄

16.835 Beiträge seit 2008
vor 5 Jahren

Da heute sowieso viel mehr WebApps programmiert werden, wäre es ja praktisch, damit auch automatisch Apps für den Desktop zu programmieren.

Das kannst Du pauschal so nicht sagen; es kommt drauf an, was Du machen willst und in welchen Regionen Du unterwegs bist.
Es gibt Länder, da ist der Internet-Anteil von mobilen Geräten bei 99+%.

Das hat natürlich durchaus Einfluss auf die Entwicklung (bzw. die Weiterentwicklung) und Zielrichtung von Tools bzw. Plattformen wie Angular, React und Co.
zB wegen Märkten wie Indien oder Südamerika sind SPAs und PWAs so extrem schnell gewachsen.
Die großen Firmen wie Facebook, Google, Microsoft, Twitter und Co sehen ja gerade in diesen Ländern riesige Wachstumsraten - nicht in Europa oder USA.
Und den chinesischen Markt - den größten der Welt - mit Alibaba und Co darf man auch nicht ignorieren.

Wir zB. machen seit Jahren weder Forms noch WPF: die Firmenkunden wollen sowas nicht mehr (ja, natürlich gibt es immer welche, die sowas brauchen/wollen - aber dann speziell (Grafik, lokale Datenverarbeitung, OnPrem-Only, Labore... aber halt einfach nicht mehr die Masse).
Selbst behören wollen weg von Fat- hin zu Thin- und mobilen Clients.
Die wollen Webanwendungen (und manchmal Apps); wir hatten seit Jahren keine konkrete Anfrage mehr nach WPF und Co (wenn überhaupt als Neben-Tool).
Aber sicherlich wird es dafür auch noch einen Markt geben; keine Frage. Nur wachsen eben andere Märkte schneller.

Fehlt nur noch die mobile Entwicklung 😄

Auch das nicht. Beschäftige Dich mal ein wenig mit dem Ökosystem dort 😉
Du wirst einige Apps finden, die im Web auf NodeJS (auf nginx) laufen, auf dem Desktop mit Electron und auf den mobilen Geräten mit NativeScript.

Und da spielen die Solution und Software Architekten solcher Apps eine große Rolle, damit Apps bzw. das Fundament einer App so aufgebaut wird, dass man die verschiedenen Runtimes drunter schieben kann -> Abstraktion.

2.207 Beiträge seit 2011
vor 5 Jahren

Hallo Davaaron,

du kannst mit Javascript (und geeignetem Client) einen Code für Web, Mobile (Cordova) und Desktop (Electron) entwickeln. Klar hat man Variationspunkte (Beispielsweise muss auf Mobile die Camera anders angesprochen werden als auf dem Desktop / Web) Aber es kann alles auf einer Codebasis laufen. Mit Javascript/Typescript.

Gruss

Coffeebean

D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 5 Jahren

Lustig. Das was ihr schreibt habe ich heute auch so gehört 😄

Über die aktuelle Marktlage habe ich bis weil nur wenig erfahren können, danke für den kurzen Einblick über die moderne Bewegung.
Was WPF anbelangt, stimme ich dir voll zu. Letztens erst wollte ich mich mit WPF vertraut machen, aber habe dann schnell gemerkt, dass das nicht unbedingt jetzt sein muss. Es gibt viele andere Frameworks, die ich zuerst vertiefen und lernen sollte.

Und da spielen die Solution und Software Architekten solcher Apps eine große Rolle, damit Apps bzw. das Fundament einer App so aufgebaut wird, dass man die verschiedenen Runtimes drunter schieben kann -> Abstraktion.

Vor diesem Problem stand ich, als ich meine eigene IDE schreiben wollte.

Klar hat man Variationspunkte (Beispielsweise muss auf Mobile die Camera anders angesprochen werden als auf dem Desktop / Web)

Das ist ja beispielsweise auch bei Xamarin so. Gibt es eigentlich gegenüber Cordova irgendwelche Vorzüge? Mal angenommen, ich kann nicht nur C#, sondern auch JS/TS.

16.835 Beiträge seit 2008
vor 5 Jahren

Es gibt viele andere Frameworks, die ich zuerst vertiefen und lernen sollte.

Sollte ist relativ. Es kommt drauf an, was Du machen und in welche Richtung Du gehen willst.
Gibt genug Branchen und Szenarien, da ist WPF weiterhin die beste Wahl.

Wenn Du aktuell die Idee hast, dass Du jede Technologie erlernen und vertiefen willst.. dann viel Glück dabei 😃
Wärst der Erste, der das packt 😃

Gibt es eigentlich gegenüber Cordova irgendwelche Vorzüge? Mal angenommen, ich kann nicht nur C#, sondern auch JS/TS.

Es gibt circa 17.2832 Millionen Vergleiche im Internet von Cordova und Xamarin bzw. anderen mobilen Plattformen.
Super einfach via Google zu finden 😉

D
Davaaron Themenstarter:in
106 Beiträge seit 2016
vor 5 Jahren

Wenn Du aktuell die Idee hast, dass Du jede Technologie erlernen und vertiefen willst.. dann viel Glück dabei 😃
Wärst der Erste, der das packt 😃

Keineswegs 😉

Super einfach via Google zu finden 😉

Fast alles ist via Google zu finden. Dennoch als mal interessant, was andere Leute in Foren so denken 😉

3.003 Beiträge seit 2006
vor 5 Jahren

Wenn Du aktuell die Idee hast, dass Du jede Technologie erlernen und vertiefen willst.. dann viel Glück dabei 😃
Wärst der Erste, der das packt 😃

Keineswegs 😉

Jack of all trades, master of none 😃.

Super einfach via Google zu finden 😉

Fast alles ist via Google zu finden. Dennoch als mal interessant, was andere Leute in Foren so denken 😉

Das Ziel ist mit beiden erreichbar. Vor- und Nachteile sind teils hochgradig subjektiv, teils von den vorhandenen Assets (Programmierer, Lizenzen, eigene Code-Bibliotheken aus Legacy-Code oder von anderen Projekten, Kundenwunsch) abhängig. Deshalb ist es Unsinn, die Meinungen dazu abzufragen. Im Haus hier wäre es völliger Käse, etwas mit Cordova anzufangen, nachdem wir ein gut geöltes Xamarin-Team haben, die wissen, was sie tun und mit Xamarin eine Menge Erfahrung haben. Daher bin ich der Meinung, dass Xamarin wesentlich besser ist als Cordova. Was genau nutzt dir das? Genau, nicht viel. Und deshalb hat Abt durchaus Recht, dich für eine Recherche an Google zu verweisen 😃.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)