WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: The direction of the development of computing  (Read 6877 times)

Offline Jakob Bysewski

  • Newbie
  • *
  • Posts: 40
The direction of the development of computing
« on: December 28, 2010, 04:44:35 AM »
In my thread here I had written this post noticing it's going much to far so I'd like to open another discussion thread for it seperating this topic from the original thread.

---

Targeting slower, low spec (also low RAM) hardware is a side goal of mine - my main system has 4GB RAM and a Core i3 530 overclocked to 3.5 GHz; but - and here it comes to taste and philosophy - I like small systems of every kind in a zen like spirit. This is for various reasons; among them is a bigger base of supported hardware, faster startup, lower power requirements (especially on netbooks or other small devices) and last but definitly not least the possibility to understand the inner workings of the system fully (if I like to). My processor is idling almost all the time, but I like it's power for compiling bigger projects (as an example: I build embedded systems using buildroot) and such. There are lot's of benefits of well thought of lightweight software. I joined MikeLookmore in his FLTK projects (hence the idea for a FLTK media player) because I don't like the big and cluttered ugly APIs of a lot of the other gui environments. If I look at was possible with computers 25 years ago and today I can easily get a bit frustrated as it seems by joining efforts and thinking more into depth we could have progressed much further.
A glorious example is the Apple Lisa  - search Youtube for videos - which was put on the market in 1983!
Another nice example is the Atari Portfolio from 1989 which is all the netbook you'd want to have powered by 3 AA batteries which would last for a week (and included a DOS compatible operating system with integrated wordprocessor and spreadsheet capabilities). I'd so like to see a device in this spirit with this possibilities build with bleeding edge technology - smartphones dig in this direction but the development is distracted by glossy displays, touchscreens and discussions about multitasking.

It seems like with .uality (the society is over.ed, underf***** and prude in a way that is even mysterious to some of the older generation) the society has soo much access to modern media, computers, cell phones and so on but only so little people really understand computers beyond the folder / file analogy. I'd like to enforce computer science in schools so much more beyond learning word and excel (and never hearing the tiniest bit of LaTeX). I'm frightened by the power one has knowing how to do linux servers and a bit about operating systems - as with every knowledge I don't believe having only a tiny fraction know about these things (and natuarally only an even smaller fraction cares for the others in a forgiving and loving way - the others use such powers in every possible way to make profit) will do humanity well.

So how do you feel about the developent of computing, computer science and knowledge about it in the broad society?
« Last Edit: December 28, 2010, 04:46:44 AM by Jakob Bysewski »

Offline nick65go

  • Hero Member
  • *****
  • Posts: 832
Re: The direction of the development of computing
« Reply #1 on: December 28, 2010, 07:08:23 AM »
Hi, I am not happy about the general computing direction. I like the idea of tiny, small, very efficient software. This is the main goal that I am hanging here, to learn more about this lovely TC. I like also the Arch linux.

There is so much info about linux, kernels, packages , on the internet. It is shame that more distributions appears, but not much real value added. Just clones of others, some are mimics of ubuntu kinds.
Ubuntu, for example, 'fight' against M$windows, maybe not a bad idea, but not right direction. Energy is lost by not focus on tiny apps, but on integration like Gnome or KDE. Jut few kernel developers still program in ASM (machine assembly language).
(BTW did you try http://www.kolibrios.org/ as a prove of efficiency?)

The bad thing is that software developers concentrate on complex GUI, which depend on a lot of library. I think it is a deal in the background between hardware manufactures (to produce more powerful devices, new, expensive) and software developers (do not care about size, efficiency, as they have bigger resources HDD/CPU/RAM). Plus linux software is free, why try to optimize in advance? first make some software, and if it had success then maybe try improve something.

It is shame that linux is not massively learn in schools. It is still a jungle, world is dominated by money makers companies.

About privacy:
some government like to spy (hm, aka 'control') their people; by using close source you can not easy protect yourself, and government can enforce by law decryption / interception calls / monitoring (by pushing close source makers).
Think about what happens if some antisocial people could communicate very secure / cryptic... big pain in the ass for police ;) or maybe no blackmail business.
« Last Edit: December 28, 2010, 07:39:46 AM by nick65go »

Offline hiro

  • Hero Member
  • *****
  • Posts: 1229
Re: The direction of the development of computing
« Reply #2 on: December 28, 2010, 08:28:22 AM »
I don't think people want more efficient software. They don't want to raise their productivity.

At least IT creates jobs.

Offline Jakob Bysewski

  • Newbie
  • *
  • Posts: 40
Re: The direction of the development of computing
« Reply #3 on: December 28, 2010, 09:21:05 AM »
Quote
At least IT creates jobs.
:D
This is not the kind of IT job I like doing...
I worked as system administrator for linux servers and windows clients for some time and I always got the best feeling in knowing I had satisfied a customer so he won't complain the same problem again - but you are right in that you can get the feeling a lot of companies are working the other way. But this seems like wasted time of manhood.
As a software developer I'm sometimes scared by the duplicity in a lot of open source projects but I also know that it's very hard to get into a project with more than some thousand lines of code - especially when no code style or patterns are enforced.

When we get to raised productivity I think a lot of people are really scared of loosing their jobs and being replaced by machines. While this is often bad for a single individual I tend to think humans can do better with their time on this planet than working with heavy machines in not so secure environments if robots can do the same thing easily. On the other hand mangers have to squeeze as much productivity and value for the stockholders as possible. In this case I think it's not always good to be more productive as this productivity is not to serve mankind but to serve the money and the greed for it.

Offline tinypoodle

  • Hero Member
  • *****
  • Posts: 3857
Re: The direction of the development of computing
« Reply #4 on: December 28, 2010, 11:08:01 AM »
Targeting slower, low spec (also low RAM) hardware is a side goal of mine

--------------------------snip---------------------------

So how do you feel about the developent of computing, computer science and knowledge about it in the broad society?

Excellent post, expressing me to a big part, only that I could never put it that well into words... :)
"Software gets slower faster than hardware gets faster." Niklaus Wirth - A Plea for Lean Software (1995)

Offline hiro

  • Hero Member
  • *****
  • Posts: 1229
Re: The direction of the development of computing
« Reply #5 on: December 28, 2010, 08:58:47 PM »
Software development sucks. If you like pretty code, you might score as an artist, a musician probably. Perhaps an economist, if you just want a lot of money fast.

On the other hand, if you think robots could do the tasks easily: Build robots :)

If you want to know what to do: It's simple, do better than the rest. It's really depressingly trivial wisdom.

Offline hiro

  • Hero Member
  • *****
  • Posts: 1229
Re: The direction of the development of computing
« Reply #6 on: December 28, 2010, 09:02:00 PM »
If only everybody didn't serve money and greed, but all these other noble purposes...

Offline SamK

  • Hero Member
  • *****
  • Posts: 713
Re: The direction of the development of computing
« Reply #7 on: December 29, 2010, 05:56:13 AM »
The activities of the commercial, profit making, world can produce circumstances which are conducive to small, possibly non-profit organizations.

It is not the intention here to open a traditional MS bashing discussion, but rather to refer to their part in bringing computing to the mass market some 20+ years ago.  The regrettable aspect of it is the way in which the concept of planned obsolescence was used to constantly drive up the demand for increased hardware specifications.  Well funded corporate marketing feed the flames, and persuade those without knowledge or interest, that the easy way to run the most modern version of an application or operating system, is to use the most modern hardware.  Frequently this leads to the premature retirement of existing kit.

In turn, an opportunity is created for projects which are able utilize the surfeit of functional but redundant equipment.

The trend to recycle, outwardly seems to be an ally of such projects; being "green" is increasingly perceived as socially desirable.  Recycling is commonly associated with reclaiming resources (glass, precious metals etc), re-manufacturing them and ultimately re-marketing and reselling them.  The projects that make use of redundant kit are slightly different, they redeploy existing items rather than using them to restart the commercial cycle.  Extending the life-cycle of products is not necessarily the most attractive option for companies subscribing to planned obsolescence.

Is there a longterm future for these projects? They are unlikely to have the well funded marketing abilities of the current corporate world.  Pure technical excellence is not a guarantee of success; the history of technological development has many examples of superior products failing in competition with inferior ones.  If the current narrowly focused consumer interpretation of recycling, meaning a destructive recovery process, can be extended to include redeployment, the chances of longterm sustainability will improve.  Social networking anyone?

Offline nick65go

  • Hero Member
  • *****
  • Posts: 832
Re: The direction of the development of computing
« Reply #8 on: December 29, 2010, 09:22:46 AM »
Leaders (govern, profit company etc) like to rule a crowd (of disciplined, humble, hard work, average intelligent people). The scary mixture for them is:
- IT skilled, full bag of tricks/knowledge people
- easy access to cheap devices (or assemble from inexpensive components)
- tiny, very efficient software, run on low resource devices

This combination could be lethal for them at some point in time, as leaders loose their power to dictate /spy / rule. Profit company will lose their dominant position.

So, any measure are, and will be, enforced to prevent spread of this mixture.
- very good IT skills will be hunted (well paid) to be on their side; clever people are hard to control.
- learning of very efficient programing language prohibited. (VBA, .NET encouraged,  but not C or assemble machine language).
- open source not promoted (knowledge is power), force close source container format and protocols.
- strong free encryption algorithms interdicted by low.
- powerful devices will be always expensive, to limit mass access to it.
- tiny efficient software purchased, implemented as firmware to limit development.
and so on... History had proved this already.

Yes, IT knowledge power could change the world, but the change is not yet entirely wished. Until then ... divide and conquer ;)

Offline MikeLockmoore

  • Hero Member
  • *****
  • Posts: 525
  • Good software needn't be big!
Re: The direction of the development of computing
« Reply #9 on: December 31, 2010, 04:03:30 AM »
I can't sleep right now, so I'm going to add my bit.  ;)

From many years of watching the Forth programming language community wring their hands over how the computer industry misunderstood and slighted them, I've come to realize that most people and the IT industry in general don't want the best technology, or the most efficient, or the most flexible.  Technologists; who by definition are focused primarily on the technical aspects of some product, tool, or technique; too often fail to understand or appreciate all of the non-technical factors determine success.

Based on what I've observed, almost anyone, from normal technology user, to business leader, to IT leader, wants the following things from technologies they adopt or buy:

1) Is it what "everyone" else is using, so I'm compatible with them, and can't be considered weird or stupid for choosing something else?

2) Is it easy to get (already bundled with something else, in stores I can shop, from my approved suppliers, or from organizations I want to work with)?

3) Is it like something I already know how to use?  That my friends know how to use? My work colleagues? My workers?  Taught in schools? I don't want to take the time or spend money to learn something new.

4) Does it do the job, at least most of it?  If it fails, are there people around who will help fix it, or help make work-arounds, or at least hold my hand while I struggle with it?

5) Does it look good, at least on the surface?

6) Is it affordable, or at least not too painfully expensive?  Does it make me look important or successful if I buy it? 

I could go on, but that covers most of it.  The masters of tech marketing understand these things and manipulate them to their advantage, and often times to the detriment of the rest of us.  Microsoft became entrenched because the locked up the availability by negotiating bundling arrangements with their MS-BASIC in early 8-bit micros and DOS in the later PCs (#2 above, which soon lead to #1 and #3), not because their products were obviously better technically than any others.  Certain game publishers made deals with retailers, guaranteeing their products got prime shelf space, while other potentially worthy games got marginal space or none at all.   Apple is fantastic on items #5 and #6, and iTunes has made buying music electronically (#2) very easy.  There are many, many cases like this.

Some technologists are truly naive about these things. Many understand them on some level, but refuse to think about them, or unrealistically demand that the world reject this kind of thinking and only consider technical performance, or license philosophy, or some other specific factor.  I think the best  technologists determinedly continue, ignoring what the masses say and do, making inroads where they can, and help good technologies survive and grow past the challenges I list.  I would say Linux is such a success story, although still relatively small, even with Android.

Anyway, I don't pretend for a minute that my little apps will take over the world.  They are too weird.  Too ugly.  Too hard to get.  Too limited in their features. Etc. Etc.  But I will continue on.  I like them.  I want to use them.  I think some like-minded people will want to use them.  I'm grateful Jakob has stepped forward with offers to help in many ways.  I hope together we serve this little community well, and maybe open a few more people's eyes to other possibilities.  Maybe even inspire a few more people to join us or start similar efforts.  It may not make a big impact on the direction of development in computing, but I hope it makes a difference to those people willing to try something different. 

OK, I better get some sleep!   8)
--
Mike Lockmoore

Offline tinypoodle

  • Hero Member
  • *****
  • Posts: 3857
Re: The direction of the development of computing
« Reply #10 on: December 31, 2010, 10:04:46 PM »
Nice way to put it.  :)
"Software gets slower faster than hardware gets faster." Niklaus Wirth - A Plea for Lean Software (1995)

Offline thane

  • Hero Member
  • *****
  • Posts: 697
Re: The direction of the development of computing
« Reply #11 on: January 01, 2011, 01:41:36 AM »
I write custom application software for a living. I've often found myself having to develop overly-complicated, potentially buggy applications because that was the only way to give the users the features they wanted.

But let's face it, ultimately software is for the people who use it. They don't care about technical things like maintainability, only that the application does what they want it to.

Offline Jakob Bysewski

  • Newbie
  • *
  • Posts: 40
Re: The direction of the development of computing
« Reply #12 on: January 02, 2011, 08:20:03 AM »
[...] having to develop overly-complicated, potentially buggy applications because [...] the users
[...] ultimately software is for the people who use it. They don't care about technical things [...]

I agree with you 100% that software is for it's users. I'm a software developer for a living too, but I have sworn to myself that I'll never again develop bad software because a customer want's me to. Software development is a very sophisticated art form and our customers have to respect that. I think they often want the "hit and run" approach because they made bad experiences with software developers making wrong promises or just don't want to think about technology.

Things like maintainability or well tested software should not be sacrificed for money - because in the end the customer will spit that back on us. I've had many cases where the customer wanted A and insisted it to be the most minimalstic, hackish version possible; but I knew that after having feature A---- for a week the customer would demand the "full version" - A+++.

Maybe I can provide a little - fake - example:
The customer want's to save data and have it searchable. At first only two persons will work with the software to be written, but if that's working well about 100 people will use it. If you can't agree upon doing a prototype first (wich is per definition to throw away and therefore allowed to be hackish!), would you
a) realize that program using serialization (java) / just write out the data into a text file (java, c/c++)
b) use a full fledged rdbms like MySQL
c) use a database, but make it in process, maybe H2 (for java) or sqlite (for c/c++) - this'll allow for easy upgrade later on if needed

Personally I'd aim at c) or even b) if I'm shure this will be needed soon. There are customers which will force you to a) if you make that thought available to them, because they think this will be the fastest, easiest and cheapest approach possible. But making such a design decision will hurt you if later on the customer needs more than the saved data in a text file (maybe to work in a distributed environment, or to have a quicker search, ...). If you have the technology available (here: rdbms) at very little cost it is - at least to me - careless to make bad software just because the customer insisted on wrong desing decisions that he'll regret very soon.
And I as a developer will regret such decisions too, because in secret my customer thinks of my work to be easily extensible when he needs this. This requirement is seldom to be spoken of loud, but in my experience it's there all the time and we have to make shure our customers value our extra work (wich costs them more money at first) to deliver a good product, which is on time, extensible, as bug free as possible and fullfilling the customers requirements to the fullest.
« Last Edit: January 02, 2011, 08:23:17 AM by Jakob Bysewski »

Offline hiro

  • Hero Member
  • *****
  • Posts: 1229
Re: The direction of the development of computing
« Reply #13 on: January 02, 2011, 11:15:20 AM »
Quote
a) realize that program using serialization (java) / just write out the data into a text file (java, c/c++)
b) use a full fledged rdbms like MySQL
c) use a database, but make it in process, maybe H2 (for java) or sqlite (for c/c++) - this'll allow for easy upgrade later on if needed

I would choose d):
   determine the exact type and amount of data to be stored.

Offline Jakob Bysewski

  • Newbie
  • *
  • Posts: 40
Re: The direction of the development of computing
« Reply #14 on: January 02, 2011, 01:07:27 PM »
 :D
Of course you are right - but this would be embedded in every step (how would one use a relational database without schema? - okay, okay I *have* seen people doing this, but you definitivly shouldn't). But also your d) does not answer the question *how* the data is stored (which is what my example is based on).

This also leads to another problem: The customer wants us to start coding at day 1 and not to gather requirements, because he thinks only the coding is productive work which gets him the product he wants. This is another fiction we have to work against, as a requirements enginieering may take up a good amount of the whole project time -> with testing considered the coding might be even the smallest fraction of a project.