Thread
:
First thoughts about the (pre) Sailfish OS 2.0
View Single Post
MartinK
2015-09-08 , 00:04
Posts: 1,548 | Thanked: 7,510 times | Joined on Apr 2010 @ Czech Republic
#
95
Originally Posted by
pichlo
Indeed there is a reason. It can be described in just two words:
1) lazy
2) programmers
While you are mostly correct (at least to about ~95% of cases - many people really do write horrendously inefficient code),
its not true in
all
cases
. There are valid cases why software might be more resource intensive now then before:
various security & hardening related features might make stuff more resource intensive while making applications more secure and harder to exploit/attack
more robust range checking - more or less directly related to the point above, you can prevent undefined or directly exploitable application behavior by stricter range memory usage checking at cost of some processing & memory usage - an ideal program of course does not need this and would run faster and with less memory usage without it, but humans hardly write ideal programs on a regular basis
localization and accessibility - a hardcoded-to-English app without accessibility would be of course be a bit faster, but harder to use for people that are not native English speakers and/or have various disabilities
bigger screens and advanced graphical/usability operations - modern computer screens are much larger than before, meaning larger bitmaps, larger framebuffers, etc.; applications might also opt to use transitions or other visual cues to make the UI more fluent (eq. stuff animates to place vs just blink in place without any transition) which can again cost some performance
optimizations - programs can opt to actually make use of all that available RAM/CPU power to do CPU/memory usage trade-offs that actually make the application faster at the cost of bigger resource consumption - of course there should be a way to dial down or outright disable these optimizations when running in a resource constrained environment
introspection and debugging information - you can make your data structures slightly bigger by adding additional information that is not strictly needed for your application, but which can be used by other tools to either make better use or your code (if you are a library an example can be the
GObject Introspection
, which can generate language bindings automatically, as an example) or might aid with application debugging (
GTK inspector
can be seen as an example, or improved crash tracebacks, etc.)
portability - an application written for a single combined software and hardware platform can make a lot of assumptions that improve performance - at the cost of making the application very hard to port to other platforms; a multi-platform application needs to make much less assumptions, needs to do many checks at runtime and often uses slightly less efficient techniques/APIs that are platform independent in place of faster but platform specific ones to aid long term maintenance
__________________
modRana
: a flexible GPS navigation system
Mieru
: a flexible manga and comic book reader
Universal Components
- a solution for native looking yet component set independent QML appliactions (QtQuick Controls 2 & Silica supported as backends)
Quote & Reply
|
The Following 7 Users Say Thank You to MartinK For This Useful Post:
Amboss
,
juiceme
,
peterleinchen
,
pichlo
,
pycage
,
ste-phan
,
zamorph
MartinK
View Public Profile
Send a private message to MartinK
Find all posts by MartinK