Objective-C vs Idris
When comparing Objective-C vs Idris, the Slant community recommends Idris for most people. In the question“What are the best (productivity-enhancing, well-designed, and concise, rather than just popular or time-tested) programming languages?” Idris is ranked 29th while Objective-C is ranked 62nd. The most important reason people chose Idris is:
Idris not only has support for type classes, but is a fully dependently typed language, giving you the full power to statically verify your code.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Well Documented
Objective-C's documentation exists on Apple's website, and explains language features in detail.
Pro Develop Apple applications
Similar to C# and Java, but used to develop native applications for Apple hardware.
Pro Objective-C supports an open style of dynamic binding
A style that can accommodate a simple architecture for interactive user interfaces.
Pro Full dependent types
Idris not only has support for type classes, but is a fully dependently typed language, giving you the full power to statically verify your code.
Pro Domain driven design and type driven development
Because of full dependent types in Idris, the programmer can focus more on modelling the domain with types and waste less time fixing common bugs that the type checker will catch. Dependent types help apply type driven development and a lot of code auto generation, making the compiler and type checker an ally in developing working software instead of just getting in the way.
Cons
Con Odd Syntax
Objective C's syntax is very alien to other languages. Learning Objective-C first will fail to expose you to a syntax style that would be relatively familiar in almost any other language.
Con Might as well learn Swift
Swift works almost anywhere Objective C does, and it was designed to replace Objective C.
Con One of the biggest mistakes ever.
It was meant to be one of the C-style languages, but has such bad syntax design it actually is the odd duck.
Con Apple-centric and obsolete
Con Tied into Apple's eco-system.
Con More Technical
To be able to do basic tasks in Objective-C requires a strong understanding of programming.
Con Requires Understanding of C-language.
Objective-C is built on top of C, and as such, requires at least a basic understanding of how to program in C.
Con Not widely used
Con Not widely used
Con Weaker type inference
As type inference is undecidable for dependently-typed languages, Idris cannot offer the full type inference that Haskell supports, and so more type annotations will be needed.
Con Different semantics from Haskell
Idris, while similar to Haskell, has strict semantics, which may cause some confusion if your backend is done in Haskell. If using Idris, it would make sense to do the backend in Idris as well, if not for the fact that Idris currently has fewer libraries available for web development than Haskell.