Tag Info

Hot answers tagged

135

At what point should a developer be allowed to choose his tools? When they don't impact your team. Am I looking at this the wrong way? Absolutely. Yes, you have a short deadline. Yes, you could get it done faster in Rails. But the company as a whole needs to deploy and maintain the application. If the company has a stable of good C# developers, ...


123

I think you make a good point. Most of the programmers on this site are likely working professionals whose goal is pretty much to create quality software as quickly as possible. Reinventing the wheel fails this goal on two counts. Re-writing code that exists is wasted effort that could be used on the unique parts of your system and makes the project take ...


101

If you get a set of requirements that are physically impossible to implement as the device does not support and cannot support the wanted functionality, you need to explain this to the person creating the requirements. You should be respectful and explain why the requirements are not possible to implement (i.e. the touch screen cannot distinguish between a ...


97

I'd say you have to talk to the team lead and say something like: I know you guys are a .NET shop, but I was actually hired for my Java/JRubyRails skills. I can build this new application in X amount of time using those tools that I already know. I could learn C#/mvc4 like you want, but it will take >> X amount of time. What do you want? This raises ...


40

You were apparently hired because of your ability to adapt to "new" technologies. C# is no different, in that regard. Are you sure you don't want to take the opportunity to learn something new? ASP.NET MVC is very similar to Ruby on Rails, in many ways. You won't be at a snail's pace forever. If you already know ROR, ASP.NET MVC will be a cinch for you. ...


31

This is an argument that pops up regularly, in many fields and in many forms. The general form of this argument is: Does having [x:tool/technology] make people worse at [y:function affected by x]? For example: Does CAD software make for worse engineers? Do calculators in high school make students worse at math? Does social software stunt people's ...


31

What does the Spring framework do? Should I use it? Why or why not? Spring is a framework that helps you to "wire" different components together. It is most useful in cases where you have a lot of components and you might decide to combine them in different ways, or wish to make it easy to swap out one component for another depending on different ...


29

These requirements are not silly, stupid or ridiculous. This is in fact very important problem for users of touch screens, that people with larger fingers have it very difficult to pinpoint the target, which is often not understood by little-fingerers. However, if you find this requirements impossible to implement because device's sensors are not able to ...


29

It seems to me that you misunderstand abstractions and code reuse. The whole software development industry is built on abstractions. Just because not using them, i.e. avoiding using frameworks, libraries and in general code which is not written in-house, would increase the cost you need to produce a piece of software by hundred, thousand, probably even ...


29

Loosely coupling your application to its framework essentially means you are going to write a proxy framework. Writing that proxy framework is a lot of work, and if you ever switch to a new framework you'll have to do a lot of work to make the proxy framework support the new framework. Of course, different frameworks use different idioms and patterns, which ...


27

It's more important to study the language than it is to study the framework. Learn the language well, and you'll use the framework well. In order of importance (most important first): Fundamental programming principles - Algorithms, data structures, etc. Language paradigms - OOP, Functional, etc. Language features. Syntax and frameworks.


26

Batteries Included Java's Tooling It is just awesome: IDEs: even if some IDEs support JavaScript, the level of support just doesn't compare. Try to refactor JavaScript code on large codebases (say, 40K+ LOC) and weep. Unit-Testing: though that picked up over the last few years, it's also way more mature in the Java world. Continuous Integration and ...


25

First, what is dependency injection? Simple. You have a class, it has a private field (set to null) and you declare a public setter that provides the value for that field. In other words, the dependency of the class (the field) is being injected by an external class (via the setter). That's it. Nothing magical. Second, Spring can be used without XML (or ...


24

1.) Why is Rails coded in Ruby? Rails was originally extracted from DHH's work on Basecamp, which was written in Ruby. Over time, the Rails core developers continued to extract and develop more features into Rails, and it eventually became a full-fledged framework. Since Ruby grew in power and expressiveness over the years, it continued to be a good ...


23

Nice Question. Code may be represented by a DAG describing the inputs and outputs of each of the arithmetic operations performed within the code; this representation allows the compiler to perform common subexpression elimination efficiently. Most Source Control Management Systems implement the revisions as a DAG. Several Programming languages describe ...


21

Abstraction is a key concept of computer programming and frameworks help programmers achieve this. This is a good thing. I doubt many us would like to develop complex systems in assembly language! The problem comes, I think, when programmers have little idea of what the abstraction layer is masking. In other words, you need to have some idea of what goes on ...


21

Arguments for staying with Java/JRuby Chances are, your boss wants you to produce. They hired you so that you could add value to the company. Ensure that they understand that by forcing you to use a framework that you aren't familiar with they will cause you to: Produce results at a slower rate Create lower quality code Even the best programmers require ...


21

I recommend reading the official answer to your question, Appropriate Uses For SQLite. Specifically, the "Situations Where Another RDBMS May Work Better" warns that SQLite does not support concurrent writing: SQLite supports an unlimited number of simultaneous readers, but it will only allow one writer at any instant in time. For many situations, ...


19

Frameworks can be tricky indeed. Problems can easily arise when a framework is too "opinionated", i.e. when it really prefers one particular style of application and all parts are geared towards supporting this particular style. For instance, if the framework completely abstracts the authentication process of a user by allowing you to just add one ...


18

Agreed. I presently work on a software package that is so encumbered by frameworks it makes it quite nearly impossible to understand the business. Once frameworks remove you from actually solving business problems instead of just solving MVC, it has gone too far. As you state, IMO many programmers try and architect/program to solve the ORM and MVC, and they ...


18

Rails (obviously!) Has Restful URIS, ORM with Active Record, Webservices - easy, unit tests come as standard. Can scale just fine (v3 is better at this). And Ruby is a real beginner friendly language, although the meta-programming aspect of it that can trip beginners up. Worth being wary of that.


18

The answer depends a lot on the context. If you would like to gain more in-depth understanding of data structures by trying your hand at implementing a hash table, "reinventing the wheel" is the best thing you can do. If you are learning how to write compilers and need a symbol table, implementing your own hash map instead of reusing one from the standard ...


18

For .NET it may depend on the deployment target. .NET 3.5 is supported in even early editions of Windows XP, whereas 4.5 is only supported on Vista and above. At my workplace we opted to stay on 4.0 because we still have workstations running on Windows XP Pro SP3 (which 4.0 supports). We cannot consider migrating until next year or so just because of that. ...


17

I like Django which is a Python Web Framework. RESTful URIs are default (also you can create any URL <-> View Mapping you want). It has a build in ORM Mapper which allows you to to nearly everything without a single Line of SQL supporting PostgreSQL, MySQL, Oracle and SQLite (and other via 3rd party backend, see here). You have easy access to caching ...


17

It's not an exact science, so don't expect to be able to predict the future trends in the technology landscape more than 5 years out with any certainty. But I would look for all of the following: Installed base - a bigger installed base means lots of companies will contine to invest in the technology and its maintenance, which means developers will be ...


17

At what point should a developer be allowed to choose his tools? When said developer is the software lead. Certainly, you can (and should) make the case for using the different toolkit if you're concerned about productivity, but be prepared for an answer you won't like. There may be a damned good reason why your lead wants you to use a specific ...


16

No. But they are nice. Pros: Saves time not having to rebuild the code yourself. Use the myriad of features, functions, and data structures someone else built that apply to your project. Cons: Not having built the code yourself could be a loss at a better level of understanding on the foundation of which your project operates.


16

My experience is pretty much the opposite of yours. When doing small, quick things, a framework can "get in the way" a bit as you need to lay out your code in a certain way and think about things carefully before proceeding. By just jumping straight to mysql_query you can have your prototype up and running much quicker. But for large, complex sites, ...


16

As a student, I would expect you to begin your programming education by first copying a wheel or two to start with, then learning to modify wheels to see how they work, and to understand any limitations. Later you might even create a brand new wheel of your own to see if you can improve on the design, or to show your course supervisor your understanding of ...



Only top voted, non community-wiki answers of a minimum length are eligible