Details
-
AboutMSc Student in formal verification Contributing to mypy - a static type checker for Python
-
SkillsC, Python, C++, Java, Scala, C#, JS, ML, COQ
-
LocationIsrael
-
Website
-
Github
Joined devRant on 5/12/2016
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@IllSlapU The opposite of "clever" is not "stupid".
-
@IllSlapU Code _must_ be as simple as you can write it. If you question this quote you either didn't understand it, hadn't been bitten by your own cleverness yet.
-
@Alice There are security flaws, there are horrible security flaws, and then there are FUCKING WOT??? flaws.
-
In the same sense, it is Kurt Gödel who is the father of computer science, not Alan Turing... These credit fights are not helping anyone. The Poles did the first effort, which is impressive considering their resources, and was important because it inspired everything afterwards.
Then came the British people - many men and women, not Alan Turing alone. But yeah, the single most important person in this story is indeed Alan Turing, so this is the name that will show up. And most of the effort (time, manpower, etc.) came from Britain, so they get their names in the title. -
It's strange that people here actually believe they can outsmart the NSA.
If the NSA targets you, specifically, you've lost. The thing is that they are not interested in you specifically, so just use standard tools and protocols and you're on the safe side. They will gather data about you, but they won't have any interest in it.
Taking extreme precautions does little more than putting you on their (and others') radar. And then you'll lose because they are both smart and resourceful, while you (and me) are neither - in comparison. -
@MatanRad `uncalled`
-
Also, in many situations there is no difference between or and xor, since xorness is enforced by real world constraints (you can't be in two places at the same time).
-
Depending on the situation. But "either this or that" is likely to mean XOR, and even more so when "either" or "or" are slightly emphasized.
(note that 'or' above is logical OR) -
@Chlodovechus IDLE is so horrible why is it default.
-
@Kimmax weak? It's an example rather than an explanation, but a perfect one.
-
Source please
-
@TheCapeGreek it is useful when you are using enums or sum-types, since the syntactic sugar makes it easier for the compiler to warn you about missing cases.
As a contributor to mypy I would love Python to have a switch, but there is no obvious syntax for it. -
The suggestion is indeed more readable and more conventional. And is less prone to typos.
-
@meowth yep. Performance is part of the API.
-
You don't need to aim low. You are talented, so be confident about yourself.
Good luck! -
@bioDan in general, dynamic languages*. True.
But this is mainly because they are geared towards small scale development, not large scale. Type inference does not help across module boundaries - it does not scale and does not help readability.
* (interpretation /compilation are implentation details, not properties of languages. In fact CPython compiles Python to bytecode, pretty much like Java compilers do). -
@bioDan but the reason you mentioned is not valid, since there are compiled, strongly typed, languages that are not nearly as verbose. In fact, most languages are not nearly as verbose :)
Perhaps what you wanted to point is "manifest typing" - requiring the programmer to declare the type of everything. This, together with the avoidance of global functions and being selective about what is imported automatically. -
Obviously they were installed in the background, and did not require restart in the first place.
-
@bioDan no. The reason is that it is a verbose language. By design.
-
@AlexDeLarge word. 64bit word.
-
Obviously "or something else".
-
Maybe he meant "there are no variable declarations" and "no need to import in order to print"?
-
And part of the reason is ridigity of the type system (ehm strings), inappropriate data structures ( strange sets) and lack of modularity.
-
@theCalcaholic it was popular, then failed - didn't scale well and was never a fit for systems programming.
-
@theCalcaholic this is well known and agreed. But for the security of the languages mentioned you pay the price of rigid type system.
Personally I'm ok with that, as long as the abstractions suits me. There weren't any at the time C was invented (see the failure of Pascal), and they aren't perfect yet. -
The discussion somewhat confuses implementation, interface and performance characteristics.
The two major implementations for a growable sequence are linked list and dynamic array.
Linked lists do not require contiguous memory, and can guarantee O(1) worst case for appending and prepending an element. Accessing an item in the middle is O(n) non-local memory accesses, which is bad. Also O(n) memory overhead.
Dynamic arrays (C++ vector, Python lists) have O(1) memory overhead; O(1) access, usually 1-3 machine instructions; appending an element is O(1) amortized, which is good unless you have hard real time requirements; and prepending an element is O(n). Operations are very local in memory so they are very fast on modern hardware. -
@No-one for *most* uses, vectors (dynamic arrays) are much more efficient than linked lists. The reason is memory locality.
-
Have some:
https://instagram.com/p/... -
Here it's 8
-
@chowdercake I believe so. Yes. Not from a personal experience though