ioseb 🇬🇪🇺🇦

1.9K posts

ioseb 🇬🇪🇺🇦

ioseb 🇬🇪🇺🇦

@iosebi

Tbilisi, Georgia Katılım Mart 2009
324 Takip Edilen607 Takipçiler
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
Yes, yes and yes!
Alexander Granin@graninas

Formal verification of correctness will never be a worthy industry practice.🚷 Software becomes obsolete much faster than it becomes correct.🚮 Statically-checked "correctness" is just a questionable tactic to squeeze money out of the industry.🧑‍🔧🔫🕵️ Here is why.⬇️ There is indeed a niche for formal verification. Static formal verification somewhat works for critical components and delicate parts of bigger systems. For example: cryptography protocols, data transformation algorithms, compilers, and parts of SCADA systems. However, even in this niche, full verification of a relatively big application is not possible. The real world is much more chaotic and disorganized. New requirements are coming constantly, and some of them contradict what was already done and was already proven. Haskellers are probably the biggest cult of believers in holy correctness from all the programming communities. They even believe that "correctness" is a scientifically defined term that cannot have any other meaning. "If you don't know what correctness is, - they say, - this doesn't mean nobody knows. Go and read the papers". Sure, because scientific papers are the only source of truth out there. You have no permission to question it, and you have no right to define it yourself unless you write a paper. Am I correct? What haskellers (and formal verification folks) call "correctness" is one of the four: ▪️ Correctness of data structures and data models. A structure has some proven invariant that is statically checked by the compiler. For example, a fixed-length array: type FirstName = Vector 10 Char However, this has nothing to do with the correctness of meaning. This is formally correct but meaningless: john :: FirstName john = " J hn o" ▪️ Correctness of algorithms. Why not prove that the `max` function gives you a maximum of the two numbers. Sure. Now formally prove that my neural network algorithm for image recognition is correct, i.e. produces meaningful results. ▪️ Correctness of languages. "If a language is proven to be correct, the code will be correct, too." This misleading idea has circulated across programming language communities for years. The sad truth is that it's impossible to disallow writing meaningless code no matter how much it is formally verified. The problem here is that this "correctness" has nothing to do with meaning. "Correctness" here is mostly a mechanical term: given a narrow set of preconditions, prove what can be proven, no matter that your model doesn't reflect the complexities of the real world. Moreover, given vague requirements, formal verification folks often prove things that are wrong from the domain point of view. It's statically correct, who cares it's meaningless. Eventually, the proofs will be fixed, and folks feel no shame for that. This is a job security practice anyway, and nobody will punish them. These folks are untouchable and highly respected. Nassim Taleb once said: "For real people, if something works in theory, but not in practice, it doesn't work. For academics, if something works in practice, but not in theory, it doesn't exist." The notion of meaning doesn't exist in theory because it is undefinable. It cannot be proven. But it does exist in practice and can be verified with tests. So why formal proofs won't become a major tool in the industry? ▪️ Formal verification is extremely expensive. These folks demand a high salary for their work ($250K+ net) while their results are questionable at least. ▪️ It is extremely narrow. You need a formally defined environment to construct proofs. Formalizing real domains is nearly impossible due to their complexity and constantly changing requirements. ▪️ It is extremely difficult. Formal verification is Math. Constructing formal proofs is as difficult as discovering Math truths. ▪️ Just because it's Math, it will never dominate the industry. Software developers are not lazy, they are not stupid to do this. Formal verification is just a vastly different profession. (I don't believe that AI will handle this for us, either.) Haskell people love discussing correctness techniques and formal verification in general. But even in Haskell, formal proofs failed to become a common practice. "Correctness" is a cult in Haskell the same way as " performance" in C++. Formal verification is a niche to these niche languages. On the industry scale, it's slightly above the noise level. Static typing didn't even win the battle over the industry. Dynamic languages top the programming language charts. To formal verification folks, dynamic languages don't exist because they work in practice but not in theory. However, the industry is wise, and it sees no commercial benefit in formal verification. This is the proof of proofs to be nearly useless.

English
0
0
4
630
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
@tornikegomareli I’m well aware of OOP’s origins, but mainstream OOP that we have now has nothing to do with its origins except name overlap. If people use or interpret something differently, means that that something was not good enough at that point in time.
English
2
0
1
35
Tornike Gomareli
Tornike Gomareli@tornikegomareli·
@iosebi OOP was designed by Alan Key in Smalltalk. The idea was to use it absolutely differently than we are using right now. Yes people have done complicated things there and bad thing is that it became defacto standard. userpage.fu-berlin.de/~ram/pub/pub_j…
English
2
0
1
45
Tornike Gomareli
Tornike Gomareli@tornikegomareli·
I firmly believe that a majority of the principles and concepts in (OOP) seem primarily designed to mediocre developers. The intention appears to be to provide them with a structured set of rules, allowing them to follow guidelines without analytical thought, or deep thinking.
Tornike Gomareli tweet media
English
2
0
1
266
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
@tornikegomareli I’m struggling with this now )) These sound rather self imposed complications. A lot of “clever” things can be done in any language but that doesn’t invalidate paradigm I guess? We can be minimalistic in any language or overcomplicate things (Haskell) 😇
English
1
0
0
43
Tornike Gomareli
Tornike Gomareli@tornikegomareli·
@iosebi I think that OOP has so much rules and imaginary problems, sometimes simple things are done in over complicated ways and simplicity is key factor of good code. Codebase need to fit with domain, sometimes it doest not need hundreds of abstraction and pattern, just because its cool
English
1
0
0
50
Tornike Gomareli
Tornike Gomareli@tornikegomareli·
@iosebi I just want to say that the 'underlying beauties' of software, including well-structured and thoughtfully designed code, is a great deal to developers, and for good reason.
English
1
0
0
60
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
@Jibla )) I don’t know how game changer it is, but it is quite handy when working with multiple databases
English
0
0
1
50
Giorgi Jibladze
Giorgi Jibladze@Jibla·
@iosebi yes, have heard from our people that DataGrip is game changer :))
English
1
0
1
75
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
ჩიტი მოკვდა! გაუმარჯოს ჩიტს! თუ ეგ მეფეებზეა? მოკლედ ჯერ ისევ ცოცხალი ყოფილა ჩიტი და არც პოსტ აპოკალიფსი გამოჩენილა… 👀😓
KA
1
0
2
0
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
@otomeskhy პლატფორმიდან არ წავსულვარ არსად. ჯასთ ტვინი მომეტყნა ამ მასკზე და ტვიტერის სიკვდილზე ყიყინის მოსმენით 😁 თან ახალგაზრდული ტროლის სულისკვეთება ბოლომდე არ წამშლია ცნობიერებიდან 😅
KA
1
0
0
0
Oto Meskhy
Oto Meskhy@otomeskhy·
@iosebi შენ და ტრამპი მასკმა დაგაბრუნათ პლატფორმაზე რა 😅
KA
1
0
1
0
ioseb 🇬🇪🇺🇦
ioseb 🇬🇪🇺🇦@iosebi·
როგორც ჩანს, კაპიტალიზმის აკვანში აღზრდილმა და პრივილეგიებით აღჭურვილმა სოციალური სამართლიანობისთვის მებრძოლმა გულმხურვალე მარქსისტებმა, ილონ მასკის სახით განტევების ვაცი იპოვნეს 🥹❤️
KA
0
0
2
0
ioseb 🇬🇪🇺🇦 retweetledi
David Japaridze
David Japaridze@djaparidze·
ქართველი ხალხის მიმართვა ევროკავშირს - Sign the Petition! chng.it/N2y86CmH via @Change
KA
0
2
3
0
ioseb 🇬🇪🇺🇦 retweetledi
Volodymyr Zelenskyy / Володимир Зеленський
Incredible Georgian people who understand that friends must be supported! 🇬🇪🇺🇦 Grateful to everyone in Tbilisi and other cities who came out in support of Ukraine and against the war. Indeed, there are times when citizens are not the Government, but better the Government.
English
6.8K
12.9K
110.7K
0