Tag Info

Hot answers tagged

33

I'd get rid of the Non-generic collections. They are an abomination...and there are too many cases where I'm using linq and have to do something like var customObjects = container.CustomObjects.Cast<CustomObject>(); Every time I have to do that, a small part of my soul dies.


32

Start showing a message "this feature is scheduled to be removed on $date, please get in touch with us if you feel this would inconvenience you" whenever a user makes use of one of these obscure features. If noone gets in touch for X weeks, pull the plug. Letting users know in advance (and specifying a deadline) is a good practice in its own right, ...


20

void as a type. Why on earth is "void" a type? It has no instances, it has no values, you can't use it as a generic type argument, formal parameter type, local type, field type or property type. It has no meaning as a type; rather, it is a fact about what effect a method call has on the stack of the virtual machine. But the virtual machine is just that: a ...


19

Practically anything in Haskell Monads. Yes - the big scary word that makes increadibly easy parsers, IO, operations on Lists and other things so easy (once you notice common pattern) Arrows. The same for advanced users ;) Standard stuff like lambdas etc. Currying functions Algebraic data types Pattern matching And many more. PS. Yes. I am Haskell ...


18

Python's decorator. It's extremely easy to implement memoization or timing of function using the decorator. Example of a function timer. class FuncTimer(object): """ Time how much time a function takes """ def __init__(self, fn): self.fn = fn self.memo = {} self.start_time = time.time() def __call__(self, *args): ...


17

Lisp macros. The Lisp macro language is Lisp, with a few predefined syntax features for the sake of convenience. Using them, it is possible to add major features to the language, such as one's choice of object orientation styles or Prolog-like deterministic matching, without looking out of place. It makes the setf macro possible, which is a conceptually ...


15

A compiler and a useful shell. Clarification based on the comments: I was unclear, I should have written C/C++ compiler. Compilers for C# or Fortran doesn't count, as much of the tools and libraries you need requires a C or C++ compiler. It used to be really bad, where you could not build C extensions for Python with another compiler than Microsofts, ...


15

There are three main ways I am aware of to solve this problem. On website use user tracking e.g. CrazyEgg In apps or web connected programs use phone home features. When 1 and 2 are not possible, e.g. non browser client programs, sensitive data, behind firewalls or when you decide not to use 1 or 2 then you need to talk to your users. I'm not talking about ...


12

Yield in Python In Python (and I believe in C#), you can define a so-called generator that pauses function execution at a yield statement, returns the value and on subsequent calls, restarts the function where it left off (with the state preserved between calls). This is great for generating long lists of values where you are only interested in the current ...


12

The unary plus operator. Least useful operator of all time. If we didn't have to keep it for backwards compat, I'd take it out in a heartbeat. Who uses this thing, anyone? (Clarification: The unary plus operator +x is not the preincrement operator ++x, not the postincrement operator x++ and not the binary addition operator x+y.)


11

The ability to write and run programs in various languages (C, C++, Python, Perl, Ruby ...) without having to install anything extra. Having at least one text editor with syntax highlighting installed by default. A package manager so that you can easily install extra libraries, version control systems, IDEs etc. A powerful command line interface. The ...


8

Lambda expressions (closures, nested functions, anonymous methods, whatever you call them). I first came across them in Perl, instantly loved them and wondered why other languages don’t have them. Nowadays I guess it’s not that unique anymore; even PHP have managed to hack them in somehow. But they were semi-unique at the time.


8

Features != User Stories. http://iserialized.com/features-vs-user-stories-in-scrum/ and http://blog.mattwynne.net/2010/10/22/features-user-stories/ These are one of my favorite reads for this topic.


8

Functions don't fit well into the context of a user story and are mostly transparent to a user. They may be a backend process or some kind of unique or common application functionality that enables other features or possibly other functions to be be implemented appropriately. Tasks on the other hand are individual units of work that must be completed to ...


7

Sets in Delphi are very useful, pretty much just a named boolean array. They're very useful for saving a settings form with 32 checkboxes. But they've got all the same set theory functions (i.e. difference, intersection, union). I'm not sure if they've fallen out of fashion, but I use them all the time.


7

Eclipse Quick Access is an amazing usability feature, in my opinion. Short version: Imagine a QuickSilver or Launchy inside the IDE!. With Quick Access you can navigate to almost any part of the IDE using the keyboard. Yes, that can be done in Visual Studio also but you need to learn the shortcut to each view: Ctrl+Alt+J to go to the Object Browser; ...


7

Defaulting numeric literals to double For most business apps, decimal is more appropriate anyway... or maybe it would be better to just remove the idea of a default, and force developer to actually make the choice. (That "remove the default" would be appropriate for some other things, too. For example, I've given up trying to persuade everyone that classes ...


7

I would like to be able to pay to get just the features I want There's several different editions of Visual Studio offering an increasing amount of functionality and integration, but it is not possible (ATM) to get a basic product with a couple of the interesting features of the full Ultimate/Team Suite. If my departmental (or personal) budget can't ...


7

Features == User Stories. The verbiage is dictated by the given Agile methodology being employed. The different methodologies use different terminology to refer to features. It is up to the team to decide which methodology or terminology to use. Extreme Programming (XP) uses the terms User Stories or Stories to represent features; Scrum ...


7

The etymologic history of computer jargon is well documented in the Jargon file (current version as of this writing is 4.4.8). The specific term "Feature Creep" is listed as "New in 4.1.0" in the change log. 4.1.0 dates to March 12, 1999 and is defined as: feature creep: n. The result of {creeping featurism}, as in "Emacs has a bad case of ...


6

Send From Erlang. Sends a message asynchronous to another thread. Expr1 ! Expr2 Receive From Erlang. Receives a message from another thread. receive Pattern1 [when GuardSeq1] -> Body1; ...; PatternN [when GuardSeqN] -> BodyN end


6

Unions in C I can't honestly say that I haven't written enough C to make any of these myself but I have worked with other's code that does. When it comes down to packaging mixtures of different data in applications that manipulate raw bits/bytes such as networking or binary data storage. In strongly typed languages theres just no easy way to do the ...


6

You need to come to a compromise. Your user (the reason the app exists) is saying it doesn't meet one of his/her needs. There is a difference between addressing the user's needs and allowing the end-user to design your application. Have a meeting with the user and ask a lot of "Why?" questions until you get to the core of the task the person is trying to ...


6

The thing that sparked the question is my discovery of Code Bubbles, which I think would be fantastic. To quote Andrew J. Brust in this blog: Bubbles actually allow for call stack traversal, saved debug sessions, sophisticated breakpoint and value watch behaviors and more. And because bubbles, unlike windows, are borderless, and focus on code fragments ...


6

A feature is a distinct element of functionality which can provide capabilities to the business. A story is a small aspect of a feature which you can use to get feedback from your stakeholders and find out if you're doing anything wrong. For instance, a feature might be "allow users to comment on articles". The stories associated with that feature might ...


6

My previous employer sells some software that enabled different features based on the particular license involved. So the ability to enable/disable features at runtime was a designed in feature. Generally, folks call this "feature driven development" (wikipedia article, decent book on the subject). It requires a lot of testing to find bugs that can be caused ...


6

The most important factor, to my knowledge, is deployment. With desktop applications, you have to: make sure the software runs on all clients (with different hardware, OS versions, other stuff installed, etc.) somehow transfer the software to each client install the software on each client troubleshoot each client individually repeat all the above each ...


6

Feature creep The phrase feature creep dates to at least 1990, as used in a comp.sys.mac Usenet post on the San Francisco MacWorld Expo of April 15, 1990: As an industry 'matures' everyone starts to look the same and the shows get less interesting, fewer and fewer really wonderfully new and striking products (I think it's because all the ...


6

If there are usability issues with the current software, then the argument is an easy one. If a significant part of your target users can not complete key tasks or take more time or energy than expected, then you should probably fix that before adding more features. Only a usability test can reveal such issues. Without objective data you will just get ...


6

It depends on your point of view. Here are a couple articles that discuss the topic. Developers see bugs as a mistake they made when translating requirements into code. Users also see deficiencies in the requirements as bugs. Developers get defensive when you say they made a coding mistake when really the mistake was a missing requirement, even if ...



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