Questions tagged [future-proof]

According to Wikipedia, Future-proofing is the process of anticipating the future and developing methods of minimizing the effects of shocks and stresses of future events.

According to Wikipedia, Future-proofing is the process of anticipating the future and developing methods of minimizing the effects of shocks and stresses of future events. Future-proofing is used in other industries such as electronics, medical industry, industrial design, and, more recently, in design for climate change. The principles of future-proofing are extracted from other industries and codified as a system for approaching an intervention in an historic building.

16 questions
160
votes
8 answers

Developing web applications for long lifespan (20+ years)

I'm currently developing a web application for government land planning. The application runs mostly in the browser, using ajax to load and save data. I will do the initial development, and then graduate (it's a student job). After this, the rest of…
Dan
  • 1,508
  • 2
  • 10
  • 12
118
votes
16 answers

Should I add redundant code now just in case it may be needed in the future?

Rightly or wrongly, I'm currently of the belief that I should always try to make my code as robust as possible, even if this means adding in redundant code / checks that I know won't be of any use right now, but they might be x amount of years down…
33
votes
19 answers

Will real world applications ever need a 128-bit flat address space?

This is a bit "one megabyte should be enough for anyone", but... A 64-bit flat address space allows up to 4.3ish billion times more space than a 32-bit address space. That's 17,179,869,184 GiB. Obviously, the transition from 8 bits to 16 bits was…
user8709
22
votes
6 answers

Keep it simple now, or program with the future in mind?

I'm currently coding a new application for my company that is rather involved. To meet the deadline, the functionality has been toned down quite a bit so that we can have something ready to go for launch. I've been given the task of getting version…
Tyanna
  • 9,528
  • 1
  • 34
  • 54
7
votes
7 answers

Fighting the half-life of code

I am building a small application that supports a research project. My goal is to make the code to be painlessly executable and readable on as many operating systems as long as possible. My reasoning is that 2-3-5-10 years down the line I will work…
user7088941
  • 569
  • 2
  • 12
6
votes
1 answer

Is there a well grounded theory on backward and forward compatibility of formats, languages, grammars and vocabularies?

I have a friend who has the specific problem of building a case against the use of a custom HTML tag in some site's markup. Now, intuitively we can answer that use of such a tag is risky, as future HTML specs may define a wrapper tag with…
4
votes
2 answers

Decimal vs. Integer; Given a fixed range of values, which is preferable for accurate computation?

After getting into a "heated discussion" with someone, I figured I'd ask this question for the sake of posterity. I'm willing to be corrected if my assumption is incorrect but I'd like to hear a third-party opinion by someone with more credibility…
RLH
  • 533
  • 4
  • 16
4
votes
2 answers

Decoupling Threads

It's not uncommon to hear of decoupling the UI from program logic, or database design/access from program logic...or even program logic from itself. However, I've never heard of an approach to generalizing or abstracting away the details of…
yurisich
  • 1,391
  • 1
  • 11
  • 16
1
vote
1 answer

How can I prepare my platform to drastically expand for the future?

Preface I'm currently building a very small scale platform I plan on bringing into a trial-production phase here within the next month. As of now, it's just a simple web application. It contains things like: Users/Profiles Commenting Systems Posts…
1
vote
0 answers

How far to go when future proofing fluent-method-chained-DSL test code?

Is it worth implementing interfaces, or using the getThis() trick, or even static factory methods to future proof against the need to extend this DSL? The current design is a pair of thin fluent-method-chained-DSLs that mix the "traditional" and…
candied_orange
  • 102,279
  • 24
  • 197
  • 315
0
votes
1 answer

term for errors which occur when running code with new data, when older data was used to develop/test the code

I'm writing code to clean and process a large number of transcript text files. My code will be re-used in the future to process additional files which do not yet exist. Future files will take on the same general format as existing files, and will be…
lost
  • 117
0
votes
1 answer

Binding an interface on top of third-party modules to develop future-proofed and scalable apps

Every day a couple of new javascript modules are created and published around the world and we need to think long term. Let's say today I need to use an ORM module to go smooth and fast. But tomorrow I may face a deprecated module or may find a…
Vahid Hallaji
  • 103
  • 1
  • 4
0
votes
1 answer

How are academics planning to solve the bottlenecks of binary computer's programming in the upcoming years?

Programming is complex. And throughout the years new technologies emerge that lay/depend upon older technologies, resulting in the need for deeper knowledge in a broad set of technologies in order to achieve a single goal. One example of that…
0
votes
1 answer

What is the traditional way to maintain extensibility in a database-driven application like this?

I'm working on a simple application for a game in Java that allows a user to record whether they have collected a given item and how much experience it contains. This will work for multiple item types (weapons, armor) and each will have its own tab…
Jsess
  • 71
  • 1
  • 6
-1
votes
1 answer

Multi platform GUI with a python/C++ core

I am aware of the existence of several threads on the topic, but I am looking for fresh hand-on experience, that I was unable to find. I have an application written in C++ (core, linear algebra and image processing) and python (interaction with the…
BiA
  • 121
  • 1
  • 6
1
2