Finding out the correct language for the job: forking with C #

I work in a Microsoft environment, so I can use my C # hammer on any nails I come across. At the same time, what languages ​​(compiled, interpreted, scripted, functional, any types!) Supplement knowledge of C # and for what purposes? For example, I moved many script functions away from compiled console applications and Powershell scripts. If you are an MS developer, have you found a niche in your world for other languages ​​such as F #, IronRuby, IronPython or something similar, and what niche do they fill in?

Note. This question is aimed at Microsoft dev users, since I cannot run away and start installing LAMP packages in my company and, therefore, should support it forever. :) However, do not hesitate to mention any other languages ​​that you found interesting for a specific task / roles in your world besides your main language.

+4
source share
14 answers

Python / Perl / Ruby / PowerShell are great additions to C # / VB.NET. If your boss hands you a text file and says that he inserts it into the database once or twice, then any of Perl / Python / Ruby (I'm not sure about powershell, but I think it's not much more complicated), it should be good to analyze it. Anyway, for your main applications, you're probably stuck in C #. You can use one of the more dynamic languages ​​to create C # code.

Since you're in a Microsoft environment, PowerShell is probably your best chance to make your decision. Next to that, I would say IronPython or something else that integrates with the CLR. But the main problem is that for someone else, in order to support what you are doing, they will need to know which language you are using. MS plans to use PowerShell much more in the future, so it's probably easier to justify PowerShell and then say Python / Perl / Ruby.

If you just process the text file for one-time use. Or by creating a generator of one temporary code to generate all the code and then intend to maintain the generated code, then it does not matter. You are the one who will consume the results, and if you save time using Perl, then more energy for you. But if you do something that will be used again and again (for example, an active code generator in which you change the templates and run the generator instead of saving the generated code), then other developers working on what you did should know the language you used . It's much harder to talk about learning Perl / Ruby / Python in the Microsoft store. But PowerShell seems like an easy argument. I think the grandiose plan of MS is that in the end, applications will reveal more opportunities for the shell through command commands. Assuming this happens, PowerShell is even more hassle-free because it will reveal a lot of functionality for scripts that you won't get in any other way.

+7
source

A good scripting language is always a good tool to wear a belt. See Ruby or Python .

+5
source

I use python for prototyping since there is almost no time to change between the changes and actually launches a new version of the code. I can even use it for a real project - the more I use it, the more I like it.

It will require some use as a C # programmer, although the input-definition-structure system it uses is a little strange at first.

+2
source

Since you are in the MS store, I would suggest PowerShell as a decent scripting language to learn. It works well with C #. I am also a big fan of Ruby.

+2
source

Although this is a slightly based language, I have to mention Erlang . Erlang is a great language for your toolkit, because unusual strengths tend to complement other programming platforms. Erlang is very useful for creating distributed, parallel, fault-tolerant systems. He used a lot in the world of instant messaging and telephony, where the need arose for distributed but interconnected architectures.

+1
source

I need a second or third python. In particular, IronPython (ttp: //www.codeplex.com/Wiki/View.aspx? ProjectName = IronPython) allows you to learn python, but also gives you access to .net framework resources.

This is pretty good for scripting tasks, so it will probably be useful for everyday coding life, as well as a great way to cheat on an experimental coding / prototyping method.

+1
source

Maybe play with Boo and see what you think. Boo at Codehaus.org
Boo on Wikipedia

+1
source

If you use the .Net framework, the language is really not important, because the compiler and interpreter in any case create the same IL-code.

If you step back from the .Net world, I believe that tools and development languages ​​are a tool. I try to use the right tools for the job, taking into account what the skills base of other developers is and what direction the company is looking for, of course (I'm a consultant).

+1
source

I'm with jjnguy. Try using one of the scripting languages. Plus, as a bonus, when you learn Ruby / PythonPearl, etc ... it's a gateway medicine ... an error language for development in other environments.

0
source

Awakening languages ​​beyond your usual toolkit will give you new ways to get closer to things in your current favorite language. Even if you don't use them for serious projects like Perl (for data processing), Lisp ( functional programming ) and Javascript (a prototype based on programming ) will teach you new ways to think about problems in your current language.

0
source

As a web developer by profession, you can look at the XSLT / XPath family, as they can be very powerful tools for certain types of XML processing.

Of course, in C # 3.x, Linq2Xml provides some similar inline functionality.

XSLT, however, can be a powerful way to separate data from presentation in your applications.

0
source

I'm very interested in F # and some other new languages ​​in the CLR / DLR. DLR languages ​​can be much better for your user interface because they do not force you to do a lot of stupid things.

However, I believe that it is important to keep in mind that learning a new language, especially in a new field, such as functional programming, is always a good way to retrain your mind so that you are familiar with new concepts and you can better code your language, even if you never use these new languages.

0
source

Check out Boo - it runs on top of the .NET stack, but its syntax is more like Python.

0
source

To learn a new language that complements C #, I would go with C ++. You can use it in a "better than p / invoke" style to access unmanaged code from your C # applications. Then you can start using it to write applications with limited memory and / or performance-critical bits if you find that some of your .NET applications start all operations with RAM and / or the processor or, as a rule, not so fast. as you would like.

0
source

Source: https://habr.com/ru/post/1276937/


All Articles