Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[taaladvies] Python multiplatform naar closed

Pagina: 1
Acties:

Acties:
  • +1Henk 'm!

  • Hydra
  • Registratie: september 2000
  • Laatst online: 18:24
Dan maar ff copy-paste van het vorige topic:
Wilf schreef op vrijdag 19 juni 2020 @ 08:30:
Is C++ ook nog steeds de ‘way to go’ om een multiplatform tool te schrijven of zijn er in de afgelopen 20 jaar wellicht andere talen bijgekomen die nu écht de edge hebben en waar ik niks van weet (dat laatste weten jullie natuurlijk niet maar zeg dat m’n taalgebruik op dit moment (naast wat niche) = PHP, JS, Python).
Waarom geen moderne JVM taal als Kotlin? Alle voordelen van Java, geen van de nadelen.

Het is trouwens sowieso heel lastig om code te 'delen' zonder dat mensen het kunnen reverse engineeren. Dat is meer een kwestie van tijd versus waarde dan van de taal die je gebruikt. Je kunt python ook obfuscaten bijvoorbeeld; dan is de code vrijwel niet te volgen.

https://niels.nu


Acties:
  • +1Henk 'm!

  • F.West98
  • Registratie: juni 2009
  • Laatst online: 21:34

F.West98

Alweer 12 jaar hier

Gezien je doeleinden zou ik zelf eens kijken naar C#/.NET Core. Werkt inmiddels multiplatform, je kan er een flexibele webserver mee opzetten voor die requests, maar heeft op Windows erg goede (bijna native) integratie met allerlei system calls en je kan redelijk eenvoudig interop doen met de Win32 dlls. En het kan out-of-the-box als service draaien.

Ik weet niet hoe goed je native dingen op Linux/MacOS kan doen, daar ben ik dan weer niet al te bekend mee.

2x Dell UP2716D | i7 6700K | 64GB RAM | Samsung 850 1TB | ASUS ROG Maximus VIII Formula | GTX960
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • +1Henk 'm!

  • RayNbow
  • Registratie: maart 2003
  • Laatst online: 20:30

RayNbow

Kirika <3

Hydra schreef op vrijdag 19 juni 2020 @ 14:51:
Het is trouwens sowieso heel lastig om code te 'delen' zonder dat mensen het kunnen reverse engineeren.
Als het gaat om specifiek de source code (dus niet reverse engineering in het algemeen), zijn er wel oplossingen om code te beschermen. Het is niet heel goedkoop, maar ik ken een aantal softwarepakketten die beveiligd zijn met Wibu-licentiedongles. De software wordt versleuteld en je hebt een licentiedongle nodig om de software te kunnen draaien. Uiteraard zal dit vast op een of andere manier te kraken zijn, maar de dongle-driver probeert enige vorm van tampering te detecteren en daarop te handelen (door o.a. de licentiesleutel op de dongle onklaar te maken).

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • +2Henk 'm!

  • Kalentum
  • Registratie: juni 2004
  • Laatst online: 23:12
Als je al alles in python hebt: Je kan python ook compileren naar een binary. Er zijn verschillende oplossingen voor en dan hoef je het niet te herschrijven.

PVoutput


Acties:
  • +2Henk 'm!

  • Ghehe
  • Registratie: april 2011
  • Laatst online: 22:35

Ghehe

Spinning Bunny :)

Wilf schreef op vrijdag 19 juni 2020 @ 10:06:
- Leesbaarheid van code (iedereen kan het stelen)
Wie gaat je software stelen? Je dwingt toch via licenties af wat er met je software mag gebeuren?
Ben je trouwens zeker dat je 100% van die broncode bezit want als je iets voor je werkgever of als consultant hebt geschreven tijdens de werkuren dan lijkt het mij alsof die software (gedeeltelijk) van het failliete bedrijf is.

Acties:
  • +2Henk 'm!

  • esv77
  • Registratie: maart 2020
  • Laatst online: 10-07 10:12
Ik wou ook met Rust antwoorden maar dat is al gebeurd in het andere topic, daar sluit ik mij bij aan.

Acties:
  • +1Henk 'm!

  • Koenvh
  • Registratie: december 2011
  • Laatst online: 03:12

Koenvh

Hier tekenen: ______

Waar maak je je vooral zorgen om? Dat het bedrijf zelf de code in kan zien en onderhouden (of iemand daarvoor inhuren), of dat het bedrijf het aan een ander doorgeven kan? Dat tweede kan namelijk gewoon met een goede licentie opgelost worden. Daarvoor zou je een advocaat o.i.d. in kunnen huren.

Dat eerste is al lastiger om te voorkomen met Python, althans, ik weet niet of je dat contractueel kunt verhinderen. Dan is Rust, Go, C++, C of wat dan ook een betere keuze (Java en C# minder, daar het makkelijker is om te decompileren, al is dat ook wel weer te verhinderen).

Waarom vandaag doen wat je morgen ook kunt uitstellen?


Acties:
  • +3Henk 'm!

  • GlowMouse
  • Registratie: november 2002
  • Niet online

GlowMouse

wees solidair

Of je iets grotendeels in 'privétijd' hebt gedaan, is niet het relevante criterium. Kijk eerst of de tool die je hebt gebouwd toch niet van je baas is. Anders mag je het uit de boedel gaan kopen voordat je er iets mee kunt.

Je zou je een paar cruciale stukjes van je code in een gecompileerde library kunnen onderbrengen. Dat is de makkelijkste manier zonder dat je veel hoeft om te schrijven.

geeft geen inhoudelijke reacties meer


Acties:
  • Beste antwoord
  • +2Henk 'm!

  • diondokter
  • Registratie: augustus 2011
  • Laatst online: 01:36

diondokter

Dum spiro, spero

Wilf schreef op vrijdag 19 juni 2020 @ 23:29:
Als ik Rust (nu de aan mij meest aangeraadde taal) multiplatform (Linux, Raspberry, Windows) kan gaan inzetten en dat closed source kan dan ben ik blij. Dan heb ik een nieuwe taal waarin ik wel durf te investeren. Zeker als dat op ‘de markt’ een taal is die potentie heeft om serieuze software te bouwen. Want dan maak ik er gewoon echt wat nuttigs van voor iedereen, openbaar maar wél met credits.
Uit persoonlijke ervaring kan ik het zeer aanbevelen. Zeker ook omdat je een C++ achtergrond hebt.
Natuurlijk kun je dit closed-source doen.
Nadeel is wel dat je er inderdaad wel in moet investeren. Het is prima te doen, maar je moet je wel even open stellen voor nieuwe concepten en accepteren dat het het beste is om gewoon de compiler te volgen.

Ik kan nog een hele rits aan voordelen noemen, maar het beste is het als je eens kijkt naar 'the book'. Dat is de beste introductie. Gewoon lekker hoofdstuk voor hoofdstuk doorheen.

Acties:
  • +2Henk 'm!

  • diondokter
  • Registratie: augustus 2011
  • Laatst online: 01:36

diondokter

Dum spiro, spero

Voor Rust zijn er IMO twee goede plugins.

VS Code: Rust Analyzer
IntelliJ: InteliJ Rust

Acties:
  • +3Henk 'm!

  • farlane
  • Registratie: maart 2000
  • Laatst online: 22-07 14:59
Rust is vet cool. Bereid je echter voor op een [ge,ont]wenningsperiode waarbij je gaat vechten met (en verliest van) de borrow checker.
Wij (de borrow checker en ik) hebben elkaar wat ruimte gegeven de laatste tijd, we gaan het voorzichtig weer oppakken in de nabije toekomst

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • +1Henk 'm!

  • farlane
  • Registratie: maart 2000
  • Laatst online: 22-07 14:59
Nu ja, als je laatste C++ ervaring van 22 jaar geleden is zal ook dat een cultuurshock zijn zou je dat gaan gebruiken. C++ vs Rust zou op dan niet veel uitmaken denk ik ;)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • +1Henk 'm!

  • Ben(V)
  • Registratie: december 2013
  • Laatst online: 21:27
Gewoon Python blijven gebruiken en eventueel alleen de .pyc bestanden ter distributie aanbieden.
Als je denkt dat 7K aan python code zonder opmaak of commentaar te hergebruiken is dan waag ik dat sterk te betwijfelen.

Haal maar eens een public domain python project van github, verwijder alle commentaar en opmaak en probeer maar eens te achterhalen wat het doet.
Ik denk dat je het sneller opnieuw schrijft.

En net zo goed als je .pyc code weer om kunt zetten naar gewoon .py bestand (zonder commentaar en opmaak weliswaar) kun je ook elke willekeurig binary decompileren en weer C code van maken.

Als je er genoeg tijd en energie in stopt kun je alles reverse engineren, maar gaat erom hoeveel het kost en wat het kan opbrengen.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


  • Immutable
  • Registratie: april 2019
  • Laatst online: 22-07 21:10
Ik denk dat hier rust is aangeraden. Echter als ik een product ga ontwikkelen kijk ik eerst wat er al bestaat, en wat ik nodig heb qua libraries en frameworks en kijk ik naar de kwaliteit van deze libraries en frameworks.(Liefst blijf ik weg bij frameworks, omdat het in de toekomst vaak zorgt voor complete rewrites van je project...)

Ik bouw graag op kwaliteit opensource werk van anderen. Eventueel kan je dan namelijk ook bijdragen aan de kwaliteit door PR's en bugfixes waar je zelf tegen aan loopt. (win-win voor samenwerking in opensource)

Voordelen van Rust:
  • Is veel productiever als C++
  • Compiler helpt je echt heel goed mee. _/-\o_
  • Build tools is modern, dus stuk makkelijker om een nieuw project op te zetten en te experimenteren. En heel makkelijk dependencies toevoegen in je TOML file en wordt allemaal automatisch gedownload. easy peasy.
  • Eenmaal gewend aan de taal ben ik van mening dat het net zo productief is als Java/C#. Maar wel iets minder als python.
  • Het is de meest breed inzetbare taal van de toekomst. Van Microcontrollers tot aan supercomputers tot aan het genereren van WebAssembly. Investeren in deze kennis is low risk high reward.
  • Het zit logischer in elkaar dan C++. Het is gebouwd op de fouten die nu voor altijd deel zijn van C++.(En nooit meer verandert kunnen worden)
Nadelen:
  • Je zult veel libraries missen, ecosysteem is jong. Meest gebruikelijke libs zijn wel aanwezig. (kijk gewoon of je iets mist. Check: https://crates.io/)
  • Compiler is traag(Omdat de compiler veel werk verricht), een snelle computer is een must voor snelle iteraties.
  • Je denkwijze moet even om, je hebt geen inheritance, en classes. (De manier van OOP in Rust ga je uiteindelijk waarderen!!! Dus uiteindelijk een voordeel)
  • Je denkwijze moet om qua denken in dingen berekenen, naar hoe ga je met je data om en de structuur van je data. Dit is heel belangrijk in rust. En welk stukje code is op een bepaald moment de eigenaar. Dit is een sleutel doorbraak om rust te begrijpen. Eenmaal dit begrepen is er een weg voor je open. Je moet dus gewoon leren hoe "geheugen" werkt en hoe rust daarmee om gaat.
  • Er zijn minder mensen die Rust kunnen programmeren, meer mensen die C++ kunnen programmeren.
Tot hier mijn persoonlijke mening als perfectionist qua mening over talen. Nu echt maatadvies: (Ik walg zelf van GC, tenzij een bepaalde algoritme daardoor sneller is)

Als je geen zin hebt in correct geheugenmanagement aanleren zoals bij Rust en het voor je project niet boeit of je een Garbage Collector hebt of niet. Dan raad ik je aan om ook even te kijken naar Go.

Go is een taal dat tussen Systeemtalen en ByteCode runtime talen in zit.(Bytecode Runtime Talen zijn o.a. Java en C#)
Go lijkt mij ook een prima keuze, deze compileert ook naar machinecode toe. Ik zou hier ook eens naar kijken als je geen zin hebt in manual geheugen management e.d. Maar je hebt dan wel een GC, maar omdat je programma eerst op python draaide denk ik dat een GC voor jou beter is. Je time-to-market zal waarschijnlijk inclusief het leren sneller zijn.

Er bestaat ook zoiets als .net Native voor C#...... maar C# gebruikt veel runtime spul in veel libraries en daardoor kun je niet alles zo naar .net Native compileren. Voorbeelden zijn, bepaalde scenario's waarbij je reflectie gebruikt o.i.d.

Het makkelijkste voor jou is een simpele OOP taal met classes(wat je al gewend bent) met Garbage Collector en naar machine taal compileert.
Talen die in deze groep vallen zijn o.a.:
  • Go Language
  • D
  • Nim
Nog meer opties? Ja.

Je kunt je huidige Python code misschien door een converter heen gooien van Python naar Go, of Python naar C++. Vaak zitten er hier en daar "edge cases" aan zulke tools.
Maar als je niet hele speciale dingen doet kan dit enorm veel werk voor je schelen bij een eerste stap om je code om te zetten.
Hier moet je zelf maar even naar googlen.

Voorbeelden:
https://github.com/google/grumpy Python naar Go (Wordt dus omgezet naar machinecode en kan men niet goed meer reverse engineeren)

https://shedskin.readthedocs.io/en/latest/ Python naar C++.

Disclaimer: ik heb geen programmeer opleiding gedaan, en ik programmeer alleen als hobby en een heel klein beetje op mijn werk. En niet met rust helaas :'(

  • farlane
  • Registratie: maart 2000
  • Laatst online: 22-07 14:59
C++ wordt een steeds beter optie tov Rust met die wensen in het achterhoofd. De interfacing met C libraries die je ongetwijfeld gaat willen gebruiken met een dergelijke berg aan wensen en low-level gedoe is uitermate goed en performance is als je er geen potje van maakt ook prima.

Wat het GUI gedeelte betreft, tja.....

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True