Reputation
8,449
Top tag
Next privilege 10,000 Rep.
Access moderator tools
Badges
19 47
Newest
 Nice Answer
Impact
~383k people reached

Jul
22
comment When I test out the difference in time between shifting and multiplying in C, there is no difference. Why?
As general rule, (1) you should be very familiar with the language's specification for shift operations before using them (e.g. their behavior on signed vs unsigned integers of various widths). (2) if you use them for performance reasons, you should know three things: (2.1) application-wide performance profiling, (2.2) micro-benchmarking (and CPU-level timing), (2.3) know how to read disassembly code, though it's not necessary to know how to write them.
Jul
21
comment If we could get a file's binary form, would this method of file compression work?
Also read Pigeonhole principle, which is a tool that can help find loopholes in one's arguments about a compression scheme.
Jul
18
comment Why does C have no competitors in low level stuff?
@dan04 that linked question uses the emphasized (bolded) word prominently; this causes the subsequent answerers and voters to become biased (trying to support or refute that claim), while being distracted from the more sensible (pragmatic) reasons. This question is able to attract the more sensible reasons.
Jul
18
comment Why does C have no competitors in low level stuff?
Ability to insert arbitrary "inline" assembly, or raw machine code, are also a necessity, because the embedded C compiler may not provide full support for the target's instruction set architecture. Also, the ABI or the protocols for making function calls (registers and stacks) needs to be well documented and allow for inter-operation between C and assembly code.
Jul
17
comment Dividing 2D grid to most efficient search
This question can be answered by a straightforward implementation of: Quadtree, R-tree, k-d tree, or other dimensional nearest neighbor search algorithms.
Jul
17
comment Do development standards vary by city?
Common sense says that there is a strong correlation with (1) the local industries and types of business and (2) the sizes of the business. Then, these two has a weak correlation with the city location. Other than that, it is a job search optimization question, and also a highly subjective one.
Jul
15
comment Have there been studies on the effectiveness of OOP in managing software complexity?
To make a comparison, one must have an alternative paradigm that is applicable to very large programming systems, constructed by programmers of ordinary skills (i.e. not by a team of experts or state-of-the-art academics). Large systems tend to involve networking, database, load-balancing and redundancy (i.e. unreliable machines), among other things. The latter list of issues dominate any debates one may have for programming language paradigms.
Jul
15
comment Does it make sense to use interfaces if you don't have polymorphism?
Android's LayoutParams is an example of this. Although they (there are multiple classes of same name, nested inside various layout classes) inherit from a common base class, swapping an implementation will break things.
Jul
15
comment What is a class library?
From a programmer perspective, "class library" is typically associated with a package-and-release process by one software provider (closed-source or open source) so that it can be used by other programmers. Perhaps the articles on Object Mentor may contain phrases to help you find references that match whatever you have in your mind.
Jul
14
comment Strategy game, how do I calculate the parallel actions?
Taking damage is more of an impediment that is involuntary. That is, if a unit is under attack by another unit, whatever action was originally being undertaken by the unit being attacked would be slowed down, or cancelled entirely.
Jul
13
comment How to handle divide by zero in a language that doesn't support exceptions?
But beginners can also argue about sqrt(-1). Basically, it is acceptable to surprise a beginner if it serves the purpose of highlighting a critical misunderstanding (an unknown unknown). Beginners can argue or misunderstand about anything, including math. Lacking non-fatal errors (NaN), a program-aborting error may be acceptable.
Jul
11
comment Why not apply Interface Segregation Principle to “extreme”
Providing that clients would typically consume just one method... this would be an unusual situation in software development.
Jul
9
comment Can one always design for scale out?
This question is borderline opinion based. Whether it is good for programmers.stackexchange is dependent on whether it attracts good, well-informed and referenced answers. Needless to say, it also requires more than a book's chapters to analyze and explain the case studies on scalability so far.
Jul
8
comment Why is software OS specific?
Many software that are already heavily integrated with a Graphical User Interface (GUI) are already OS-dependent. This is because each operating system has its own GUI styles and customs; There are cross-platform GUIs but not every company and programmer makes the decision to use them. To discuss the pros and cons of cross-platform vs. platform-specific GUI development is a question too broad to be answered in this place. One would not be able to comprehend without at least some working experience on some kind of commercial-scale GUI projects.
Jul
8
comment Why is software OS specific?
user139929: your original hunch is correct - many software are written to OS-specific APIs. As for how many is "many", one should keep in mind that some companies and programmers value cross-platform more highly than others; some companies and programmers find it more convenient to write software to a single platform. We cannot speculate on deficiencies of a textbook diagram - it is to be taken as an illustration, not a dogma. We are not here to criticize a textbook author just because a diagram happens to omit some details.
Jul
7
comment What defines the dimensionality of an array?
If you have access to MATLAB or Octave, the concept of "singleton dimension" would be tremendously useful to help anyone think through the issue. See: mathworks.com/help/matlab/ref/squeeze.html
Jul
7
comment What are the causes that lead to an overbloated software?
Also poor testing (QA) or lack of emphasis on certain qualities of the software (e.g. speed, size, efficiency). Totally enterprise-class minimum viable product.
Jul
7
comment Deterministic and controllable fully automated memory management
Unfortunately, the history of future will prove that this highest-voted answer (as of Jul 6'13) to be untrue...
Jul
5
comment Terminology: queue versus fifo
There is also a debate between whether a name should be "abstract / high-level" vs. "descriptive / detailed". However, such a debate may be opinion-based, and therefore are not suitable for the StackExchange network. See: "good subjective vs. bad subjective".
Jul
5
comment Is a degree needed for low-level/embedded programming jobs?
It requires a vocational mindset, a willingness to dig into the details, whether it happens in a vocational school or in an accredited university.