RISC vs. CISC and Programming

CISC architecture is known as ‘complex instruction set computer’, this architecture is based on the argument that a CPU is able to perform large numbers of complex instructions and therefore should be used to do so, even if they are redundant (Brookshear, 2009, p.85). RISC architecture is known as ‘reduced instruction set computer’, this architecture is based on the argument that the CPU should have a minimal set of instructions due to the fact that once a CPU has a certain minimum amount of instructions, adding any more does not increase capabilities and will only decrease the speed and efficiency of the machine (Brookshear, 2009, p.85).

The strengths of RISC over CISC are very apparent when reading though the paper by George (1990). In his paper he states that while CISC is more popular and will no doubt remain so in the near future due to backward-compatibility for current software, RISC has far more advantages when going forward due to the “constantly changing body of knowledge used for processor design”.

From my readings I believe that CISC processing is best suited for RAD (Rapid Application Development). In this day and age, at the pace of the IT and software industry it will help us with concentrating more on breaking new boundaries in development of less-complex software and design by taking the tedious work of programming operations that are run-of-the-mill requirements for every day applications away and allowing us to concentrate on more complex and new developments. Issues that may hamper this, however, is due to the fact that CISC processors are less efficient and take longer to process than RISC, and speed of execution is one of the most important factors in software today.

RISC processors allow us to have almost a “clean slate” when programming. With its minimal instruction set it can cater for new methods of developing the simplest of operations at a higher speed of what has been discovered and pre-programmed into the CPU like in CISC processors. RISC will also allow for more complex and low-level (more than likely larger, more advanced systems) development at more efficient performance due to the lack of excessive and potentially un-used instruction sets slowing down performance.

As far as future replacements, the popularity of the CISC chip may be replaced by the RISC chip as stated in the paper by George (2009). I do tend to agree on this but also by perhaps adding the ability for custom instructions to be stored in the CPU which would allow user/operating system/software defined instructions to be added dynamically for optimisation of that particular system configuration

References

Brookshear, J.G (2009) Computer Science: An Overview. 10th ed. China: Pearson Education Asia Ltd.

George, A.D (1990) “An overview of RISC vs. CISC”, System Theory, 1990. Twenty-second Southeastern Symposium on, 11-13 March, Cookeville. IEEE, pp.436-438.

Software Architects – How will this position change in 10 years?

The question at hand I would like to discuss is, how do I think the position of a Software Architect will change in the next 10 years?

In ten years’ time I believe this position will definitely still exist and I am quite sure there will be many more holding this position than today.

In the future I have a strong belief that software architects will have to structure their software planning based more heavily on developing middleware and collaborative systems (“cloud computing”) than developing brand new systems. In an article by Pokharel and Park (2009) it is mentioned that “Cloud computing is the future generation of computing”. Today we see a number of large applications becoming increasingly popular and in my personal experience developing new software that “talks to” external systems is becoming more and more popular. In one project I have worked on it was a potential deal-breaker if our software was unable to talk to SAP.

 

In a paper by Medvidovic (2002), it is stated that “While architecture is an early model of a system that highlights the system’s critical conceptual properties using high-level abstractions, middleware enables that system’s realization and ensures the proper composition and interaction of the implemented components” followed by “The relationship between the two areas and their respective shortcomings suggest the possibility of coupling architecture modelling and analysis approaches with middleware technologies in order to get ‘the best of both worlds’ “. I believe this is a substantial statement supporting my beliefs.

 

The current focus of software architecture, in my personal experience, does seem to be aimed at the creation of vastly “stand-alone” components with the only real reliability being on the operating system the software will be running on. The large, successful developments of today will be the focus of the middleware of tomorrow.

 

I believe that in 10 years’ time the training required to perform the duties of a Software Architect will be the same as today but will include new training based on existing systems and how to make them work together efficiently via API’s/middleware as well as the requirement for more experience in developing these modules.

 

As far as automation goes, I believe the current movement towards the use of programming frameworks will only increase, while low level programming will be far less of a requirement when planning the development of a system. Using components of a framework (one can think of a framework as a library of “functions” to perform common tasks so that the programmer does not need to do it themselves) will enable a much larger focus on the bigger picture and allow for more complex systems to be developed.

 

References

Medvidovic, N. (2002) ‘On the role of middleware in architecture-based software development’ SEKE, 27, pp.299-306, ACM [Online]. Available from http://doi.acm.org/10.1145/568760.568814 (Accessed: 12 September 2010).

Pokharel, M and Park, J. (2009) ‘Cloud computing: future solution for e-governance’ ACM International Conference Proceeding Series, 322, pp.409-410, ACM [Online]. Available from http://doi.acm.org/10.1145/1693042.1693134 (Accessed: 12 September 2010).

 

 

In ten years’ time I believe this position will definitely still exist and I am quite sure there will be many more holding this position than today.

In the future I have a strong belief that software architects will have to structure their software planning based more heavily on developing middleware and collaborative systems (“cloud computing”) than developing brand new systems. In an article by Pokharel and Park (2009) it is mentioned that “Cloud computing is the future generation of computing”. Today we see a number of large applications becoming increasingly popular and in my personal experience developing new software that “talks to” external systems is becoming more and more popular. In one project I have worked on it was a potential deal-breaker if our software was unable to talk to SAP.

In a paper by Medvidovic (2002), it is stated that “While architecture is an early model of

a system that highlights the system’s critical conceptual properties using high-level abstractions, middleware enables that system’s realization and ensures the proper composition and interaction of

the implemented components” followed by “The relationship between the two areas and their respective shortcomings suggest the possibility of coupling architecture modelling and analysis approaches with middleware technologies in order to get ‘the best of both worlds’ “. I believe this is a substantial statement supporting my beliefs.

 

The current focus of software architecture, in my personal experience, does seem to be aimed at the creation of vastly “stand-alone” components with the only real reliability being on the operating system the software will be running on. The large, successful developments of today will be the focus of the middleware of tomorrow.

 

I believe that in 10 years’ time the training required to perform the duties of a Software Architect will be the same as today but will include new training based on existing systems and how to make them work together efficiently via API’s/middleware as well as the requirement for more experience in developing these modules.

 

As far as automation goes, I believe the current movement towards the use of programming frameworks will only increase, while low level programming will be far less of a requirement when planning the development of a system. Using components of a framework (one can think of a framework as a library of “functions” to perform common tasks so that the programmer does not need to do it themselves) will enable a much larger focus on the bigger picture and allow for more complex systems to be developed.

 

Bibliography

Medvidovic, N. (2002) ‘On the role of middleware in architecture-based software development’ SEKE, 27, pp.299-306, ACM [Online]. Available from http://doi.acm.org/10.1145/568760.568814 (Accessed: 12 September 2010).

Pokharel, M and Park, J. (2009) ‘Cloud computing: future solution for e-governance’ ACM International Conference Proceeding Series, 322, pp.409-410, ACM [Online]. Available from http://doi.acm.org/10.1145/1693042.1693134 (Accessed: 12 September 2010).

Smart Banking in South Africa

Many people are scared or simply too lazy to change their bank; I do not fall into either of these categories. As with my history of buying cars, I have much the same attitude towards banking – if I haven’t truely researched my options; how am I supposed to make an educated decision?

Here in South Africa we are “monopolised” (exaggeration, of course) by our big 4 (ABSA, FNB, NedBank and Standard Bank), our parents and grandparents have been using them for years and therefore we simply follow blindly. The big 4 are all as bad as each other, some (FNB) more innovative than others – but at the end of the day you are usually paying far too much for what you get.

I’m not going to delve into the big 4, as most of us are quite aware of at least one of the big 4 and the rest are usually quite similar.

Two fairly new-comers to the South African banking industry are:

  1. Virgin Money
  2. Capitec Bank

For this post, I’m going to propose how using the above 2 banks you can bank efficiently and benefit both yourself and your credit record while doing so.

 

Let’s start with Capitec Bank

Capitec Bank’s “Global One” account provides consumers with a debit card linked to a savings account. The fees (currently) per month are R4.50 for the account and includes Internet Banking at no charge.  The interest rate is, as with all other banks, linked to the prime lending rate, but is significantly higher than just about any other daily banking account – especially considering its only R4.50 per month administration fee. Even if you earn a low salary you are more than likely going to make that R4.50 back in interest due to the rates that Capitec provides (a higher rate for amounts under R10 000 – favouring the less fortunate for a change).

Capitec also provides SMS alerts for all transactions, charged at 40c per SMS, which can be disabled if you don’t wish to have it. The major savings come in to play when it comes EFT’s and debit orders. An EFT payment into your bank account is free, a debit order is R2.75, a manual EFT payment is R2.50 and Debit Card swipes are free as well. When it comes to cash withdrawals, Capitec have gone the route of a number of other financial providers and allowed for cash withdrawals from shop tellers; if you draw from Pick n Pay, Shoprite, Boxer, Checkers or PEP its a R1 fixed fee – if you draw from a Capitec ATM its R3.50 fixed fee and if you draw from any other ATM its R7.00 – so basically if you draw over a certain amount from one of the big 4 banks, you’re probably being charged less than one of their own customers!

Another great thing about Capitec is that payments from other banks usually land up in your Capitec account the same day or next day depending on what time the payment was made.

 

Next, let’s take a look at Virgin Money

Virgin Money’s Credit Card provides one of the lowest debit interest rates (currently 14%) and a better-than-average credit interest rate of 3% currently. This card also provides free swipes on petrol transactions – and of course, as with any credit card – there is no transaction fees for credit swipes. To quote their website you have “up to 25 days to settle your amount owing at the end of each month” – so, no interest charged until you’ve surpassed that 25 day time period.

 

There’s nothing more I feel is worth mentioning on the two as what I’ve outlined should theoretically be all you use your card for. Remember, keep away from purchasing on budget!

So what are the rules you should be sticking to to get the best out of your banking situation?

  1. Store all your cash in your Capitec Bank account.
  2. If you need cash, withdraw from Capitec at one of the shopping centre tills.
  3. If you’re shopping, use your Virgin Money credit card. Why? Because you don’t pay interest until 25 days after the end of the month; leave your cash in Capitec where it can take advantage of that sweet interest rate!
  4. ALWAYS be aware of how much you can afford to spend, don’t spend more than you have and try not to buy things that rely on the fact that you’re going to get your salary soon.
  5. Settle your full credit card debt before the interest kicks in (to be safe, I wouldnt settle it less than 5 days before the interest kicks in, just in case).

By following these rules and using the above banks you can save yourself a significant amount of money, not to mention earn some interest!

PS: By using your credit card for payments you are helping your credit record (having no credit doesn’t improve your credit record – you’d like to buy a house one day, wouldn’t you?)

Any better tips welcome, just leave a comment :-)