Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' 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

Mozilla gebruikt machinelearning om programmeerfouten uit Firefox te halen

Mozilla gaat gebruikmaken van software die via machinelearning het aantal bugs in Firefox moet verminderen. De zogeheten coding-assistent luistert naar de naam Clever-Commit en is ontwikkeld door gamemaker Ubisoft.

Clever-Commit combineert data van het bugtracking- en het versiecontrolesysteem van Firefox om met behulp van kunstmatige intelligentie patronen in de historie van programmeerfouten te ontdekken. Volgens Mozilla gaat dit ervoor zorgen dat de volgende versies van Firefox sneller kunnen verschijnen en bovendien stabieler zullen zijn.

Het bedrijf gaat de software gebruiken tijdens het codeer-, test- en releaseproces van Firefox. Door de integratie van Clever Commit in het hele ontwikkelingstraject denkt Mozilla uiteindelijk zestig tot tachtig procent van alle bugs te kunnen onderscheppen voordat ze in de code belanden. De ontwikkelaar verwacht op die manier honderden uren aan risicoanalyse en bugdetectie te kunnen besparen. Clever-Commit is ontwikkeld door Ubisoft La Forge, de r&d-afdeling van gamemaker Ubisoft. Mozilla gaat meewerken aan de verdere ontwikkeling van de coding-assistent, onder meer door zijn kennis over programmeertalen en bugtrackingsystemen beschikbaar te stellen.

Van Firefox verschijnt om de zes tot acht weken een nieuwe versie. Volgens Mozilla bevat zo’n nieuwe browser gemiddeld achtduizend aanpassingen in de code, die onder meer uit JavaScript, C++ en Rust bestaat.

Firefox logo

Door Michel van der Ven

Nieuwsredacteur

13-02-2019 • 12:35

92 Linkedin Google+

Reacties (92)

Wijzig sortering
Wat is de reden om tegenwoordig nog Firefox te gebruiken? Ik had altijd IE, Firefox en Chrome geïnstalleerd gehad. Elke site of ontwikkelaar van websites en apps had zijn voorkeur waardoor de ene site / app beter werkte op de ene browser en vice versa.
Nu gebruik ik eigenlijk al tijden alleen nog IE en Chrome. IE puur voor Office 365 en Azure omdat dit het beste werkt. De rest in Chrome. Van daaruit gebruik ik Firefox helemaal niet meer.
Let wel ik ben geen fanboy welke een bepaalde browser aanhangt. Ik ben juist heel opportunistisch en stap zo over naar wat voor mij het beste werkt.
Ik gebruik Firefox omdat ik Mozilla meer vertrouw dan Google. Daarnaast gebruikt Firefox de laatste browser engine die niet door een groot bedrijf beheerd wordt.
Mozilla heeft eigenlijk geen privacy achtige problemen gehad. Dit in tegenstelling tot goolge (alle versies van Chrome/chromium).

Iedereen die zich IE 6 nog kan herinneren snapt waarom je firefox moet gebruiken. Niet omdat firefox beter is. Of omdat je google al dan niet vertrouwd. Maar omdat je meerdere render engines wil hebben.

Als firefox dus ooit op 80% komt dan moeten we dan maar Chrome gaan gebruiken.
Ja, precies dit.

Wat ik wil toevoegen: Google kan hele andere (commerciële?) belangen hebben bij het overwegen van het implementeren of het weglaten van bepaalde functies in Chrome. FF is in die zin "clean".

Het laatste "plannetje" van Google was, dat na een update van Chrome de functionaliteit van zgn "adblockers" zou worden uitgeschakeld.

https://www.theregister.c..._ad_content_block_change/

[Reactie gewijzigd door obimk1 op 13 februari 2019 18:28]

Mozilla is de enige doorsnee browser die (1) breed beschikbaar is op elk platform en (2) niet wordt gemaakt door een groot tech-bedrijf dat meer en meer geinteresseerd wordt in ofwel jouw persoonlijke gegevens of jouw probeert vast te houden in een platform. Daarnaast is Firefox ongeveer het laatste bastion van een onafhankelijke render engine, omdat los van Safari alle andere browsers op Chrome zijn gebaseerd of gaan worden. Dat laatste geeft Google eigenlijk bijna volmacht over hoe het web werkt.

Ik gebruik alleen maar Firefox daarom (en Safari, als dat beschikbaar is op mijn platform).
De enige? Opera is een mooi alternatief. Beschikbaar op elk platform (inclusief een portable op Windows).
Met mooie functies als een built-in ad-blocker en vpn, regelmatige updates en vooral snelheid en stabiliteit.

Net als @0vestel0 ben ik geen fanboy maar een opportunist. Maar ondanks regelmatig Edge/Chrome/FF te proberen als er een grote update voor uitkomt zit ik al een paar jaar vooral op deze browser.
Opera is geen mooi alternatief want het is gekocht door (een bedrijf wat eigendom is van) de Chinese overheid. Bovendien gebruikt het zoals de anderen al schreven de blink Engine wat een afgeleide van de Chrome engine is.

Vivaldi is een beter alternatief dan Opera want deze is niet in handen van een tech gigant of overheid maar deze gebruikt nog steeds de Chrome engine. Firefox is werkelijk de enigste die niet ontwikkeld wordt door een onafhankelijke partij en een eigen engine heeft.
Firefox is werkelijk de enigste die niet ontwikkeld wordt door een onafhankelijke partij ...
Mozilla is toch juist onafhankelijk van Google/Microsoft/Apple? Of heb ik dat zinnetje verkeerd begrepen?
Je hebt de zin verkeerd begrepen. Maar dat is niet jouw schuld. Ik heb de zin incorrect en slordig geschreven. Ik bedoelde uiteraard dat Firefox onafhankelijk is.
Opera telt in dit geval niet mee omdat het onder de motorkap gewoon een aangepaste versie van Chrome is. Tevens vertrouw ik Opera absoluut niet met mijn data als zij via hun VPN (Wat eigenlijk gewoon een proxy is) de inhoud van de pagina's kunnen inzien.
Vertrouwen, tsja, het is maar net waarvoor je het gebruikt. Om op The Pirate Bay te komen voldoet die VPN prima. Maar je hebt gelijk, ik zou via die VPN geen bankzaken doen, of politiek gevoelige dingen, gezien de Chinese eigenaar.
Opera is gebaseerd op Blink, de engine van Google Chrome.
Opera is een aangepaste versie van Google Chrome (je doet dus lekker mee aan het uitbouwen van het Chrome-imperium), en is in het bezit van een dubieus Chinees consortium (dubieus vanwege de deelnemers aan dat consortium, niet per se omdat het van Chinese origine is). Daarnaast is de browser i.t.t. Firefox en het grootste gedeelte van Chrome closed source. Dus ik vind niet dat het echt een mooi alternatief - ik zou dan veel liever een Chromium-variant gebruiken.
Inderdaad, Firefox dient hier meer op in te spelen als "privacy" browser. Volgens de EFF-test is firefox met wat plugins beter beschermd dan een privacy browser gebaseerd op Chrom(e|ium).

Ik gebruik Firefox om het te steunen. Het is inderdaad niet de snelste browser (naar mijn gevoel).

Spijtige is dat Firefox zijn inkomen bestaat uit het default configureren van Google als search engine...
Firefox heeft sinds versie 57 een nieuwe engine die sneller en efficienter is (minder geheugen) dan Chrome, Chrome daar en tegen is juist langzaam steeds meer resources gaan gebruiken afgelopen jaar of misschien wel 2.

Dus ik zou dat niet (meer) zeggen.

[Reactie gewijzigd door Lennie op 13 februari 2019 14:51]

Wel, ik vergelijk met een clean install brave browser en nog een chrome derivaat.
Geen propere vergelijking, maar de andere browsers profileren zich als privacy browser en mijn Firefox+plugins geldt as such.
Dan mag je je ff wel eens updaten. Tegenwoordig is ff een van de snelste.
Enige wat ik mis op een mac is de zuinigheid op cpu (met video). Youtube speel ik af op 20% cpu tijd (safari). Bij ff is dat 30-35% en met chrome 35-40%. Ik heb 16Gb geheugen dus die hebberigheid van chrome op geheugen ergert mij (nog) niet.

Maar in ieder geval is firefox een lichtgewicht geworden sinds enkele maanden.
Mozilla is ook afhankelijk van Google. Zowel Firefox als Safari verdienen flink geld met het instellen van een standaard zoekmachine.

Firefox's Mozilla krijgt 501 van de 537 miljoen omzet in 2017 van Google. En Apple krijgt voor Safari voorkeursplekje 9 miljard in 2018 van Google.

Er zijn nog drie grote actief ontwikkelde browser engines: WebKit, Blink (2013 fork van WebKit) en Gecko. Dat komt neer op Safari/GNOME Web, Chrome/Edge/Opera en Firefox/Tor.

[Reactie gewijzigd door Jelv op 14 februari 2019 09:59]

Mozilla is ook afhankelijk van Google. Zowel Firefox als Safari verdienen flink geld met het instellen van een standaard zoekmachine.
Dat is waar. Maar Google kan de ontwikkeling van die browsers niet beinvloeden anders dan de standaardzoekmachine. Als ze iets anders willen aan Chrome/Chromium wordt die update gewoon gereleased - dat kunnen ze niet afdwingen bij Apple en Mozilla. Daarnaast gebruikt Firefox in de VS Yahoo als standaardzoekmachine, wat aangeeft dat ze hun keuzes hebben.

GNOME Web is daarnaast niet echt een doorsnee-browser, aangezien bijna alle distro's er voor kiezen om standaard Firefox te gebruiken. Webkit-verkeer komt realistisch gezien vrijwel alleen van Apple-hardware.
Firefox's Mozilla krijgt 501 van de 537 miljoen omzet in 2017 van Google.
Dat lees ik niet in dat artikel. Daarin staat dat Mozilla 501 miljoen dollar aan search royalties ontvangt dus dat gaat dan over alle zoekopdrachten in de browser dus over alle zoekmachines. Veel mensen zullen ongetwijfeld Google gebruiken maar veel gebruikers ook niet (ik gebruik bijv Duckduckgo).
The percentage of revenue derived from royalties has never been under 91% - Mozilla's fortunes have always been tied to Firefox's search contracts.
Niks nieuws onder de zon dus. Mozilla Firefox is en blijft een onafhankelijk stukje software en dus een van de browsers voor mensen die waarde hechten aan bijv privacy. Op mijn systeem geen polonaise en dat is inclusief het besturingssysteem. Het is erg jammer dat mensen niet in de gaten hebben dat er zoveel goede niet-Google en niet-commerciele software verkrijgbaar is die voor 99% van de consumenten echt fantastisch werkt. Ooit is er door vrijwilligers gestreden met grote krantenadvertenties tegen de hegemonie van Microsoft Internet Explorer. Met succes want die browser werd uiteindelijk van het toneel weggevaagd. Misschien moet er maar eens een goede actie op touw gezet worden om alle open source en vrije software in de schijnwerper te zetten.
waarom dan geen chromium deze is toch ook op elk (ok, niet direct mobile) OS beschikbaar? alleen ben je wel afhankelijk van third party builds of moet je hem zelf builden.

windows: https://chromium.woolyss.com/
ubuntu: sudo apt-get install chromium-browser
mac?: https://www.macupdate.com/app/mac/36244/chromium
Omdat Chromium gewoon Chrome is met ietsje minder Google-integratie en pogingen tot lockin. Websites registreren het als Chrome, het werkt zoals Chrome, het gebruikt Chrome-extensies en het maakt nog steeds gebruik van de Blink-engine. Door Chromium te gebruiken help je alleen maar mee om Google's greep op het web te versterken.
In Chromium zitten nog flink wat Google diensten:

"They include a web service that helps fix mistyped web addresses, a prediction service, Google’s anti-phishing feature, and more." Bron
Maar die kun je wel uitschakelen :)
Misschien wat minder afhankelijk worden van die multi miljardairs bedrijven? Lijkt me al meer dan genoeg reden om bv. geen Chrome te gebruiken.

Dit zou gewoon onbewust eigenlijk al mensen naar bepaalde keuzes moeten lijden, ben meer benieuwd waarom mensen juist Edge of Chrome gebruiken.

Volgens mij hebben mensen het dan namelijk niet helemaal begrepen ;-)

[Reactie gewijzigd door Marctraider op 13 februari 2019 14:05]

Naast jouw argumenten: firefox is sneller en gebruikt minder geheugen, trackt niet continue alles van je, etc.
Ik zal FF nog eens proberen, maar normaal gesproken crasht de boel altijd of gebeuren er rare dingen bij het laden van een pagina. Er was altijd wel iets mis met het ding.

[Reactie gewijzigd door vickypollard op 13 februari 2019 20:28]

Ik had dat soort problemen wel met FF Nightly, maar goed dan vraag je er ook om (zijn unstable builds)
Ben sinds kort weer overgestapt op de stable release en heb echt nul problemen in dagelijks gebruik.
Dit zal misschien je gedachten veranderen? bepaalde adblockers werken niet meer in toekomstige versies van Chrome waaronder Ublock Origin.
Dat was een voorstel toch? Het is niet zeker of dat daadwerkelijk zal gebeuren. Dan nog steeds is het wel erg toevallig dat het is voorgesteld vlak nadat Microsoft had aangekondigd om met EdgeHTML te stoppen.

[Reactie gewijzigd door NiLSPACE op 13 februari 2019 15:32]

dat duurt nog wel een tijd voordat het klaar is. De nieuwe declarativeNetRequest API is nog verre van af.

Uit het manifest: "The declarativeNetRequest API is an alternative to the webRequest API. At its core, this API allows extensions to tell Chrome what to do with a given request, rather than have Chrome forward the request to the extension. Thus, instead of the above flow where Chrome receives the request, asks the extension, and then eventually gets the result, the flow is that the extension tells Chrome how to handle a request and Chrome can handle it synchronously. This allows us to ensure efficiency since a) we have control over the algorithm determining the result and b) we can prevent or disable inefficient rules. This is also better for user privacy, as the details of the network request are never exposed to the extension.

This API is currently being implemented, and will be available to both the current manifest version and Manifest V3, but will be the primary way to modify network requests in Manifest V3.

Het hele manifest is te lezen hier.
Opzich is het niet zo moeilijk waarom. Firefox is voor mij toch een browser die niet van een Google of Microsoft is en alles heeft wat ik wil. En het werkt sinds de laatste versies erg vlot.
Ik ben juist van Chrome, edge en vivaldi afgestapt terug naar Firefox, werkt echt vele malen beter voor mij. Hij voelt merkbaar sneller aan.
Omdat Chrome nu de verkeerde afslag heeft genomen richting 'bepaalde advertenties mogen, zelfs met adblocker', wat immers te verwachten valt van het moederbedrijf. Gezien Microsoft ook Edge bij het grofvuil zet door ook dat op Chromium te laten draaien, mogen we heel blij zijn met Firefox. Als het je toch niet uitmaakt, steun dan de browser waar gezond verstand nog prevaleert.

nieuws: 'Door Google voorgestelde Chrome-wijzigingen schakelen sommige adbloc...
nieuws: Mozilla-ceo toont zich kritisch over switch naar Chromium door Microsoft
Met gezond verstand valt het ook vies tegen bij Mozilla. Vrijwel alle recente stappen die gemaakt zijn hebben tot irritatie en het weglopen van trouwe gebruikers en developers geleid. De nieuwe interface en de overstap naar WebExtensions heeft de aanpasbaarheid van de browser net zo beperkt gemaakt als bij Chrome en het heeft talloze developers de handdoek in de ring doen gooien. Er worden systematisch steeds meer preferences "onschadelijk gemaakt", tot de mogelijkheid om (tijdelijk) updates uit te zetten toe. Mozilla moet niet doen alsof iedere update alleen maar fouten oplost en geen nieuwe introduceert; soms is het van groot belang om een update uit te stellen, dat weten Windows-gebruikers ook wel (en technisch gezien is de browser een steeds meer vergelijkbaar "ecosysteem").

Om even te hinten naar de woorden die door Churchill bekend zijn gemaakt, Firefox is de slechtste browser, behalve in vergelijking met alle andere. Helaas moet daaraan toegevoegd worden dat Firefox van alle browsers wél echt de allerslechtste weg is ingeslagen voor de mensen die Firefox waardeerden om waar het voor stond.
Er is nog zoiets als persoonlijke voorkeur. Jij ziet misschien geen reden om Firefox te gebruiken, maar een ander ziet geen reden om bijv. Chrome te gebruiken. Smaak/mening over iets is voor iedereen anders. ;)
Binnenkort kun je Chrome je reclame filter niet meer gebruiken of FF nog wel
Omdat het lekker werkt. Ik gebruik nu al jaren Firefox en sinds de quantum update, al bijna anderhalf jaar geleden, is het ook lekker snel. Ik gebruik de navigatie balk puur voor navigatie and hoef geen zoek resultaten daarin (daarvoor heb ik de zoekbalk ernaast), met chrome heb ik het gevoel dat je gelijk alles googlet i.p.v. je eigen geschiedenis rustig doorzoekt. Ook had ik nogal last van het ram gebruik in Chrome, dat is in Firefox een stuk minder (zeker na een paar uurtjes browsen).
Ik denk dat ze er voor de rest wel redelijk gelijk uitzien, tabs boven, address bar eronder met daar weer onder optioneel je bookmarks, dus ik denk kwestie van smaak.
Met Firefox kan je tags geven aan je favorieten.
Ook kan je makkelijker van tab wisselen en weer terug met CTRL + TAB.
Zelf vind ik Firefox lekkerder werken, omdat je betere shortcuts hebt.
Ipv van dergelijk 'zevers' te verkopen kan ik je enkel aanraden eens een tijdje werken met Firefox. Dan zul je ervaren dat het de beste en intelligentste browser is. Snelheid is gelijk met Chrome en natuurlijk sneller dan IE of Edge. Daarnaast zijn alle mogelijke addons beschikbaar.
Ik gebruik al zo'n 15 jaar, ben even naar Chrome gegaan, ik 'vertrouwde' het zaakje toen niet en zou het nu nog minder vertrouwen.
Moest iedereen zo denken zijn er maar 2 browsers meer van 'ongeveer' de 2 rijkste bedrijven ter wereld. Dus de bedrijven die het meest 'commercieel' zijn. Dus ook uiterst commercieel met jouw data
Ik ben firefox beginnen gebruiken voor Firebug indertijd. Werkte stukken beter dan F12 in ie.
Nu echter overgestapt op chrome
Ligt er denk ik ook wel beetje aan welk platform. Chrome is mijn browser voor mijn computer, maar gebruik sinds een tijdje Firefox voor mijn mobiel omdat ik daarop ads kan blokkeren.
Wat is de reden om tegenwoordig nog Firefox te gebruiken?
Voor je mobiel, zoek op Firefox Focus.
Deze 🔥🦊 versie zorgt er voor dat je meer aandacht hebt voor de inhoud van de sites die je bezoekt.

De normale Firefox heeft ook een knopje in de adresbalk die de inhoud van een website duidelijker leesbaar maakt, je kunt daardoor artikelen makkelijker er sneller lezen.
Software langer op de plank laten liggen om het te laten rijpen is een verkeerd uitgangspunt. Hoe langer je wacht des te minder de kans de een bug ontdekt en opgelost wordt. Het is niet voor niets dat een van de krachtigste punten in de Agile ontwikkeling (Google / Spotify) juist de korte ontwikkelcyclussen zijn.

Ik weet niet of je programmeert en je eigen code pak-em-beet een half jaar later nog weer eens gezien hebt? Hoe mooi je toen ook dacht het te ontwikkelen ... het is complete abracadabra. Het kost veel tijd om je weer in de code in te leven en vervolgens de gerapporteerde bug weer op te lossen. Enorme veel tijd! Bij korte ontwikkel- en releasecycly zit de ontwikkeling nog in je hoofd en weet je na de uitleg van een bug vaak al de oplossingsrichting. Dit bespaart enorm veel tijd.
Hoe mooi je toen ook dacht het te ontwikkelen ... het is complete abracadabra.
Ik mag toch hopen dat je je eigen code van een half jaar geleden nog kunt begrijpen, anders heb je echt een maintenance-hell gecreëerd. Natuurlijk, een bug fixen die ik een half uur geleden heb gecreëerd is makkelijker dan een bug die ik gisteren heb geschreven, terwijl die van gisteren makkelijker is dan die van vorige week etc. Maar ook code van jaren terug zou nog onderhoudbaar moeten zijn.

Het is een vergissing te denken dat testen een alternatief is voor het schrijven van clean code. De rest van je verhaal staat echter als een huis.
“Clean code always looks like it was written by someone who cares.”
een bug fixen die ik een half uur geleden heb gecreëerd is makkelijker dan een bug die ik gisteren heb geschreven, terwijl die van gisteren makkelijker is dan die van vorige week etc.
ik heb toch andere ervaringen, nuja een "bug van een uur" noem ik geen bug maar een programeerfout tijdens ontwerp.Maar soms zit je uren op je fouten te zoeken en vind je die langs geen kanten.
ik vond het dan soms handiger om even iets total anders te doen en dan pas terug kijken naaar wat je gisteren gedaan had. Meestal vond ik de fouten dan vlugger.
Waarom , het gaat zelden over syntax fouten, die vind je vlug, maar om logica of jouw implementatie ven de uitgedachte logica. en als je blijft zoeken na het programmeren, dan blijf je in die mindset zitten.
door er even afstand van te nemen, en dan weer te kijken, bekijk je het met een "andere bril" en lukt het wel de fout in je logica te vinden.

Nu toegegeven als ik nu terug kijk in m'n code van 10 jaar geleden, is het even slikken van hoe heb ik dat nu ooit bedoeld? gelukkig schrijf ik alles in het lang en het breed uit, met voldoende commentaar in de code, waar de code niet voor zichzelf spreekt. Dus de syntax is gemakkelijk , voor de logica moet je echter terugvallen op documentatie.
Code van iemand anders ondersteunen is daarom meestal echt een hel, vooral het ontbreken van de documentatie en als ze dan variabelen, methode, procedures in de vorm van ab_er_ksdj schrijven is de leesbaarheid nihil.
> Maar ook code van jaren terug zou nog onderhoudbaar moeten zijn.

Dat zou zo moeten zijn. De realiteit ligt anders. De realiteit is dat programmeurs dagelijks met diverse onderwerpen bezig zijn. Soms in hetzelfde stuk software, soms wat anders. Sommige ontwikkelaars werken misschien al aan een heel ander project na een halfjaar.

Je maakt in je hoofd als programmeur een soort mindmap van programmacode. Het hebben van documentatie e.d. is nog zo mooi, maar het gaat je alsnog altijd tijd kosten om die mindmap weer te verversen. Het punt is dat dit tijd kost, en tijd is geld.
Sommige ontwikkelaars werken misschien al aan een heel ander project na een halfjaar.
Als jij code schrijft, ga je er dan vanuit dat alleen jij het hoeft te kunnen onderhouden? Ik zou dat niet op mijn C.V. zetten.
De doorloop van programmeurs op sommige projecten is erg hoog. Zeker op zeer grote projecten worden vaak specialisten ingehuurd (vaak detacheerders) welke een bepaald onderdeel moeten realiseren of optimaliseren.

In documentatie staat vooral beschreven hoe de flow van een bepaald onderdeel werkt. Code implementatie details worden zelden in documentatie opgenomen. Immers bij een refactoring is de documentatie achterhaald. Dus voor programmeurs wordt meestal gebruikt gemaakt van live documentatie in de code. Maar ook deze documentatie is vaak beperkt tot class, property en methode signatures.

Dan komen we bij de scope documentatie uit. En hier gaat het vaak 'fout'. Wij voegen vooral comments toe om stukje code te verduidelijken. Maar wat voor mij eenvoudig is, kan voor een ander complex zijn. Ik zelf ben vooral gespecialiseerd in distributed programming in de financiele sector, voornamelijk pensioen- en beleggingsmaatschappijen. Micro-services hebben vaak te veel latency waardoor men terug valt op meer klassieke distributed programmeer concepten. Een aantal maanden terug heb ik mee gewerkt aan een systeem van een verzekeraar welke aandelen automatisch verkoopt als deze onder een bepaalde grens komt. Een seconde extra vertraging in een sell call kan grote financiele gevolgen hebben. Over veel trucjes om onnodige (thread) synchronisaties te voorkomen denk ik niet meer na. Die schrijf ik net zo gemakkelijk als dat een webdeveloper html/javascript schrijft.

Ik zit vaak maar 1 tot 2 maanden op een project. Zet de basis architectuur op, draag daarna het project over aan een ander team welke (een deel van) de toeters en bellen schrijft. Soms mag ik na een half jaar nog een weekje terug komen voor een optimalisatie slag, maar dat komt niet vaak voor..
Het is niet voor niets dat een van de krachtigste punten in de Agile ontwikkeling (Google / Spotify) juist de korte ontwikkelcyclussen zijn.
Wellicht is Spotify een slecht voorbeeld, want als ze de client weer eens breken dan kan je niets, ook amper feedback geven (support is echt bagger) waardoor de bug niet gericht opgelost wordt, maar per ongeluk een keer...

[Reactie gewijzigd door Cergorach op 13 februari 2019 13:31]

Als ik programmeer in Visual Basic en nu Visual .NET, schrijf ik iets boven de code wat de code precies doet. Dan kan ik pak weg 1 jaar later, gewoon de "uitleg tekst lezen en weet ik weer wat dat stukje code nu juist weer doet. Als je abracadabra wilt, moet je Magiër worden. Bovendien heeft "abracadabra" niks te maken met programmeren. Als je gaat programmeren moet je weten wat jouw programma moet doen of wat je er van verlangt dat jouw programma doet. Programmeren is trial en error, geen abracadabra ;)
Kijk even in mijn profiel en weet dat ik al vele jaren, decennia, werk in omgevingen waar hoge kwaliteit wordt gevraagd. We werken in omgevingen van 10, 100 duizend regels code in project teams waar integratie (en dus documentie) essentieel zijn.

Voor de rest een leuke taaldiscussie maar toont aan dat je meer een scriptkiddie bent dan iemand die serieus software ontwikkelt. Je documenteert code in de context van dat moment, in de manier van denken van dat moment. Vervolgens ontwikkelt de omgeving zich, jij als persoon ontwikkel je en je manier van denken is na zo'n tijd gewoon anders, langzaam worden jouw oorspronkelijke commentaren uit de context verschoven van toen. Commentaren zijn onderhevig aan tijd, erken dat en je wordt een goed programmeur.

[Reactie gewijzigd door hamsteg op 15 februari 2019 00:34]

Firefox opereert in een vrij divers veld met verschillende combinaties van OS en plugins waarbij het aantal mogelijke combinaties waarschijnlijk groter is dan wat reëel is om te kunnen testen. Omdat bugs in een browser kunnen leiden tot ernstige situaties is het belangrijk om ze snel te kunnen oplossen. Het merendeel van de aanpassingen zal dan ook waarschijnlijk bugfixes zijn en niet zozeer nieuwe functionaliteit.
Ziet dit niet als iets magisch die plots de fouten aanduidt en eventueel zelf corrigeert. De tool zal eerder op basis van bepaalde patronen en bugfixes uit het verleden warnings genereren als het gelijkaardige dingen ziet.

Bv. je overloopt een aantal scenarios in een functie met if constructies, dewelke dezelfde zijn als in een andere functie in jecode (maar je doet wel iets anders in de bodys). 1 randgeval vergeet je, en de tool ontdekt dit en waarschuwt je of dit wel de bedoeling was dat je dat ene randgeval niet beschouwt...Normaal gezien merk je dat bv. na het zien van crashes, nu wordt je als gewaarschuwd tijdens het programmeren.

Meer voorbeelden daartoe rijkt mijn fantasie niet uit, maar kan me voorstellen dat de tool heel veel kan ontdekken op basis van fixes uit het verleden en gelijkaardige fouten...

Ik vermoed ook dat de tool met probabiliteiten werkt en je als developer kunt instellen vanaf welke bug probability treshhold je warnings te zien krijgt...

En dat ze het nu voorlopig enkel bij het reviewen gebruiken is vooral ook om te kijken hoe goed de tool werkt...

[Reactie gewijzigd door Clemens123 op 13 februari 2019 13:00]

"Magisch" sinds wanneer is programmeren iets magisch? Voor magie moet je in Kasteel van Zweinstein zijn waar Harry Potter zijn magie haalde. ;)

Als ik programmeer in Visual Basic en nu Visual .NET, schrijf ik iets boven de code wat de code precies doet. Dan kan ik pak weg enkele maanden later, gewoon de "uitleg tekst lezen en weet ik weer wat dat stukje code nu juist weer doet. Als je abracadabra wilt, moet je Magiër worden. Bovendien heeft "abracadabra" niks te maken met programmeren. Als je gaat programmeren moet je weten wat jouw programma moet doen of wat je er van verlangt dat jouw programma doet. Programmeren is trial en error, geen abracadabra.
? Ik zeg juist dat de tool niets magisch is en NIET al het werk voor jou doet...(wat trouwens ooit er ook nog van zou kunnen komen, als mens heb je leren programmeren...dus kan een machine ook leren programmeren op basis van specificaties die je hem geeft).

En commenten wat de code doet wil niet zeggen dat de code correct werkt...en daar gaat het over bij het vinden van fouten. Het gaat hier niet over code waarvan je niet weet wat er de bedoeling van is.

En programmeren is best zo weinig mogelijk try and error, omdat errors vinden soms archiemoeilijk is in grote projecten zoals Firefox. Dat is juist het punt van de tool, dat je fouten vindt nog voor je ze uitprobeert door met machine learning patronen van fouten te ontdekken, op basis van statische patronen (zoals mijn voorbeeld met de if constructies) of met een dynamisch machine learning model dat gevoed wordt met bugfixes uit het verleden.
Waarom? Om dat ook niet elk geval en randgeval kan uitgetest worden, vele situaties onstaan pas bij de gebruiker.
Dat valt wel mee hoor. Als een feature tegen een bepaalde tijd niet klaar is zal deze gewoon moeten wachten op de volgende release. Waar vroeger het ontbreken van een bepaalde feature ervoor zorgde dat een versie uitgesteld werd omdat het anders pas maanden later beschikbaar zou komen, heeft men nu veel minder die publicatiedruk.

Hetgeen je omschrijft was dus net bij de vorige manier van release cycles aanwezig. Dat was namelijk een van de redenen om over te stappen naar een snellere release cycle met kleinere aanpassingen per keer.
Dat komt zeer waarschijnlijk voort uit de methodiek die ze gebruiken om te plannen. Ik vermoed dat ze via Scrum werken, en zo op die manier iedere 6-8 weken een release willen/moeten uitbrengen.
Je ziet dat heel veel bedrijven op die manier werken. (kijk bijvoorbeeld naar de grotere apps die elke zoveel weken met een nieuwe versie komen)
"Zeer waarschijnlijk"
"Vermoed"

Dat brengt niet veel NIEUWE informatie hé... Dit is een vrije meningsuiting forum.
Men wilt graag uw volledige mening weten en liefst wat jij zelf weet zonder al te veel te gaan Googlen. Als je begint met "vermoeden", dan zijn we nog heel ver ...
Als dat op die manier zal gaan, is dat nu ook zo zonder Machine Learning, verwacht ik.
Dat is niet hoe het werkt......
Hoe werkt het dan wel? Leg eens uit want "Dat is niet hoe het werkt...... " doet me vermoeden dat je meer wil zeggen, maar niet wilt? Dit is een vrije meningsuiting forum. Sommige zijn enkel uit op sensatie en -1 punten geven aan anderen als het volgens hen op geen zak trekt.
Er staat duidelijk dat ze deze techniek willen gebruiken om te voorkomen dat er bug in de code terecht komen. Dan slaat jouw uitspraak dus nergens op want je beschrijft dat ze de bugs uit de code vissen. Deze techniek zal puur de commits van de gebruiker controleren op veel voorkomende, of eerder ontdekte, fouten en de commits weigeren of flaggen voor controle.Normaal zit hier bv een vaste set van regels / controles achter wat ze nu dus uitbreiden met een machine learning systeem welke zelf nieuwe regels kan toevoegen aan te hand van eerdere bevindingen, wellicht door bugfix commits van de gebruikers zelf te analyseren.

Daarnaast is jouw -1 gewoon terecht want een reactie zonder enige inhoud welke de plank mis slaat en uitsluitend bedoeld is om te trollen verdient een -1. Dat was ook de reden dat ik verder geen inhoud aan mijn antwoord had gegeven.
En ik heb dus volgens u, letterlijk het woord "vissen" gebruikt in mijn comment waarop jij reageert? |:(
Ik dacht van niet... En de -1tjes gaan VISSEN bij de andere eendjes ;)
"Dan die machinelearning er over heen, en dan alles uitbrengen..."

Dat is hetzelfde als "dan vissen ze de bugs eruit".

En ik heb nergens letterlijk gezegd ;)
De machinelearning haalt de bugs er uit (verwijderen) of duid de bugs aan, zodat anderen ze kunnen verwijderen. ;)
Dat het makkelijker word om fouten te ontdekken en daardoor iteraties korter kunnen worden betekend niet dat je kwaliteitsstandaarden omlaag hoeven te gaan.
Ik begrijp niet waarom je wordt downgemod. Blijkbaar kennen ze de regels van het modden niet.
Ze kennen de regels juist zeer goed. Net zoals jij en ik op nul gemod zullen worden, want onze reactie is off topic.

Misteramd stelt 'Nu zal het eerder zijn, alles vlug vlug samenstellen'. Kennelijk begrijpt hij de Agile / Scrum methodiek niet, maar hij geeft wel een negatief waardeoordeel over Firefox omdat ze Agile/Scrum gebruiken in plaats van de klassieke waterval methode.
Scrum is programmeren in een team / multidisciplinaire teams. De ene die goed is in dit zal zijn deel van de code schrijven terwijl de anderen, die goed zijn in andere dingen, hun deel zullen programmeren.
Desalniettemin gelooft iedereen dat Machine Learning alles gaat oplossen. Zo werkt het niet hé mannen!
Ook de Machine Learning moet leren en weten wat de code doet alvorens dingen aan te passen en bugs op te sporen. Het zal nog een tijdje duren alvorens de Machine AI weet waar de bugs zitten. Tot dan, hoop ik dat de programmeurs iets meer tijd spenderen in zelf bugs op te sporen, zodat ze dit kunnen meegeven aan de Machine Learning AI zodat de AI sneller bugs kan opsporen in de toekomst.
De scrum methodiek werkt ook prima als je alleen op een project zit. Het werken van backlog items en sprints zorgt er voor degelijke planning. Ook kun je goed zichthouden of items niet langer duren dan oorspronkelijk bedacht. Uiteraard is een daily standup niet nodig, maar een intro- en retrospectie is zeker aan te raden. Het geeft een stukje zelf reflectie..

Als ik een 'team' vorm ik mij eentje, dan gebruik ik vaak zelfs zeer korte sprints van slechts een week. Start op maandag, woensdag 17.00 uur introspectie, vrijdag done en retrospectie. Indien niet klaar op vrijdag, dan doorwerken in het weekend.

Ik heb zelfs een keer een weekend project van twee dagen opgedeeld in drie sprints zodat ik kon werken met een dagplanning. Uitloop van dat betreffende project was niet toegestaan omdat de systemen op maandagochtend weer gestart moesten worden. Scrum is dan een mentale steun waar ik alle todo punten noteer en waarmee ik eenvoudig kan zien of ik nog op koers ben om de project deadline te halen.

Juist op een project als Firefox waar al ruim 15 jaar aan ontwikkelt wordt is machine learning juist interessant. Je kunt dan alle bug reports gebruiken als trainingsset. Met zo'n grote trainingset is juist het herkennen van bug patronen eenvoudiger. Machine Learning is gewoon een extra tool bovenop de bestaande toolset om bugs te voorkomen. Het is geen vervanging, maar een toevoeging..

Als men een bug vind en men deze oplost, zal aan de work item een commit zijn gekoppeld. Deze commit is de correctie voor het zelf lerend systeem. Programmeurs schrijven unittests om bugs in hun code te ontdekken en de werking van de code te testen. Alleen draait firefox op zoveel systemen dat je nooit alle bugs kunt voorkomen. Steeds meer programmeer talen werken bijvoorbeeld met attributen voor annotaties op de code. Het weglaten van een dergelijke attribute zal niet direct een fout opleveren, ook zijn dit soort fouten vaak lastig te onderscheppen in unittests. Dit soort issues worden over het algemeen gerapporteerd door gebruikers welke een test build gebruiken (nightly build, alpha, beta, rc, etc). Een zelf lerend systeem zal op een gegeven moment herkennen dat als een bepaalde afgeleide wordt gebruikt, ook een attribute moet worden gezet.

Deze tool kan dan de commit al tegenhouden omdat de tool net als statische analyses al direct de fout herkent..
Ik kan ook Google gebruiken hoor. Ik heb heel dit verhaal niet nodig. Je richt je precies enkel op mij terwijl er hier nog anderen ook zitten. :O 8)7
De -1 is uitsluitend omdat hij een bericht zonder inhoud plaatst met alleen maar onterechte kritiek op een systeem wat hij niet snapt. Dat is trollen.
Ik snap heus dat er heel wat mensen (een heel programmatie team) achter Firefox staan om Firefox te maken wat Firefox is de dag van vandaag.

Ik zal gewoon de verkeerde woorden hebben gebruikt omdat Belgen nu dingen anders uitlegt dan Nederlanders. Vorige keer was er hier ruzie met een andere Belg omdat een hele groep Nederlanders hem verkeerd begrepen, was hij "de trol van het Forum", doch nadat die Belg zijn uitleg gaf met iet wat andere woorden, was er wel positieve respons. Nu zal ik, als Belg, aan de beurt zijn, denk ik, dat ik dus op basis van "de verkeerde woorden", negatief in het daglicht word gesteld. Ik trek me dat niet aan. Zoals ik al zei, 1tjes zullen vissen bij de andere 1tjes.
Ik wil eigenlijk ook graag Firefox op mn telefoon gebruiken. Ik ben wel genezen van Chrome.
Maar Chrome is op mijn s9+ echt bijna 2x zo sneller dan Firefox op mn telefoon..
ligt dat aan een instelling, ondersteuning of wordt dat bewust tegen gehouden? Misschien heeft iemand een oplossing, of eventuele inhoudelijke informatie dat zal fijn zijn ! Verder tevreden over Firefox. En met data gaan ze ook een stuk beter om...

Ik heb heel veel geleerd van Tweakers. En dan vooral de community zelf. In de inhoudelijke reacties leer je zoveel dingen.

Wel jammer dat het van de persgroep is. Ipv een onafhankelijke "iets".

En ik ben echt blij dat nu.nl weer heeft ingeschakeld om reacties te kunnen geven. Sindsdien is het niveau op tweakers gelukkig weer zo goed als hersteld !
Dat nu.nl volk is grotendeels weg denk ik.. gelukkig ook :p
Mozilla is op dit moment bezig om hun Android browser om te gooien. Je kunt een prototype uitproberen hiervan. De reacties zijn erg positief: https://old.reddit.com/r/..._like_firefox_quantum_on/
Dankjewel ik zal het proberen ! Hoop dat het beter is. Het hoeft niet razend snel te zijn als het maar bijna zo snel is of in de buurt komt. Dankjewel!
Het is wel echt een prototype hoor. De UI is wat minder (bijvoorbeeld geen tab sluiten door te swipen) en er zijn geen extensies.
"Clever-Commit combineert data van het bugtracking- en het versiecontrolesysteem van Firefox om met behulp van kunstmatige intelligentie patronen in de historie van programmeerfouten te ontdekken."

Wat ik hier lees is dat ze binnenkort misschien 1 of meer vacatures hebben bij Mozilla :)
Omdat ze AI specialisten nodig hebben, of omdat ze programmeurs die programmeerfouten hebben gemaakt eruit gooien? ;)

Dat eerste: mogelijk.
Dat tweede: elke programmeur maakt fouten, zeker in zulke projecten. Fouten voorkom je niet, maar voor verbeteren moet je altijd open staan. Volgens mij kan je als programmeur met een beetje machinelearning/AI-assistentie best wel veel leren van je eigen programmeerfouten. Resultaat? Betere programmeurs. :)
Als clever-commit werkt, dan weet je niet een programmeur een fout heeft gemaakt omdat de commit wordt tegengehouden..
Of juist lege stoelen die niet meer gevuld hoeven te worden.
Wordt leuk als die AI leert wie constant bugs veroorzaakt en gewoon diens code aanmerkt al spotentiele bugs...
Dit is om te zorgen dat developers productiever zijn.
Eindelijk ge-artificial-intelligend de "missing ; here" invoegen (als je toch zo goed weet dat het er moet staan, zet het dan ook neer hè) :+ .

Ik hoop dat het systeem ook mogelijke security fouten zou kunnen opsporen; "possible url injection vulnerability in url.cpp at line 314" of iets dergelijks.
Dit soort dingen kunnen al tijden met statische analyse van code. Het oplossen er van ook wel maar soms wordt een probleem ergens anders door veroorzaakt. Je zou dan wel iteratief kunnen proberen op te lossen.

Stel een ; mist dan kun je die in-memory aanpassen en de analyse nog een keer draaien. Is het dan opgelost, opslaan. Zo niet, probeer de nieuwe melding op te lossen etc. tot een bepaalde diepte. Lukt dat niet, dan gewoon melding geven en handmatig op laten lossen.

Ik ben erg benieuwd wat "AI" hier voor een rol speelt.
Ik gebruik Visual Studio IntelliCode (IntelliCode) en het werkt eigenlijk best goed. het begrijp niet altijd contextueel wat ik probeer te typen, maar het geeft mij heel vaak de juiste stukken code om te hergebruiken bij het maken van een functie/class

Ik kan niet echt zeggen dat het de ontwikkeltijd omlaag heeft gebracht, maar ik merk wel dat (Als het werkt) ik minder bezig ben met typfouten eruit te halen. De code audit (c++) is wel drastisch verminderd en hebben het voor sommige projecten de audit terug kunnen brengen naar een dag (waar we soms met grote projecten wel een week bezig konden zijn alleen de audit uit te voeren/na te lopen)
Clever-Commit combineert data van het bugtracking- en het versiecontrolesysteem van Firefox om met behulp van kunstmatige intelligentie patronen in de historie van programmeerfouten te ontdekken.
Om machine learning modellen te trainen heb je heel veel data nodig. En van die data moet ook nog eens duidelijk zijn of dit wel of niet gewenst gedrag is (lees: of het bugs bevat of niet in dit geval).

Hoewel FF redelijk wat code bevat en er behoorlijk veel commits plaats zullen vinden, lijkt me dit toch in de verste verte niet genoeg data om het model knap te kunnen trainen.

Verderop in het artikel stond wel dat ze hun data gingen delen maar vraga met af of ze op die manier een grotere pool aan data krijgen en dus ook betere resultaten. Maar ik gun ze alle succes ermee want dit is een erg mooie toepassing voor machine learning natuurlijk.
Het origineel komt van Ubisoft af, Mozilla gaat alleen van hun systeem gebruik maken. Ubisoft gebruikt dit al geruime tijd in een hoop verschillende projecten.
Rust tegelijkertijd met fuzzing en nu deze AI check is echt wel het nieuwe niveau in software kwaliteit in het algemeen en beveiliging in het bijzonder.

Ik denk dat iedereen die een library schrijft deze ook zou moeten fuzzen, alleen al vanwege het feit dat je een gebruiker dan feedback kunt geven over uitzonderlijke situatie in plaats van een vage crash ergens in je library.
En zie daar de eerste stap van de automatisering van de ICT.

Op dit item kan niet meer gereageerd worden.


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Sport

'14 '15 '16 '17 2018

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