Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

It Was Never About the Language: Paradigm Impact on Software Design Decisions

  • Conference paper
  • First Online:
Software Engineering Perspectives in Intelligent Systems (CoMeSySo 2020)

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 1294))

Included in the following conference series:

Abstract

Programming languages development has intensified in recent years. New ones are created; new features, often cross-paradigm, are featured in old ones.

This new programming landscape makes language selection a more complex decision, both from the companies points of view (technical, recruiting) and from the developers point of view (career development).

In this paper, however, we argue that programming languages have a secondary role in software development design decisions. We illustrate, based on a practical example, how the main influencer are higher-level traits: those traditionally assigned with programming paradigms.

Following this renovated perspective, concerns about language choice are shifted for all parties. Beyond particular syntax, grammar, execution model or code organization, the main consequence of the predominance of one paradigm or another in the mind of the developer is the way solutions are designed.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    In this particular case, these two abstractions will likely hide from the master control the particulars of interacting with the corresponding external systems featured in Fig. 1.

References

  1. Ahmed, F., Capretz, L.F., Bouktif, S., Campbell, P.R.J.: Soft skills and software development: a reflection from the software industry. Int. J. Inf. Process.Manage. 3(4), 171–191 (2013)

    Google Scholar 

  2. Brilliant, S.S., Wiseman, T.R.: The first programming paradigm and language dilemma. In: SIGCSE Technical Symposium on Computer Science Education. vol. 28, pp. 338–342. Association for Computing Machinery (1996)

    Google Scholar 

  3. Brosgol, B.: An introduction to the C# language and .NET infrastructure. In: ACM SIGAda Annual International Conference on Ada and Related Technologies, pp. 3–4. Association for Computing Machinery (2009)

    Google Scholar 

  4. Brown, S.: The c4 model for software architecture. https://c4model.com/ (2018)

  5. Cantrill, B., Bonwick, J.: Real-world concurrency. Queue 6(5), 16–25 (2008)

    Article  Google Scholar 

  6. Cass, S.: The 2019 top programming languages. IEEE Spectr. 33 (2020)

    Google Scholar 

  7. Derk, M.: What makes a programming language popular? an essay from a historical perspective. In: ACM SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, pp. 163-166. Association for Computing Machinery (2011)

    Google Scholar 

  8. Dovland, J., Johnsen, E., Owe, O.: Verification of concurrent objects with asynchronous method calls. In: IEEE International Conference on Software - Science, Technology and Engineering, pp. 141–150 (2005)

    Google Scholar 

  9. Espinosa, J.A.: Shared Mental Models and Coordination in Large-Scale, Distributed Software Development. Ph.D. thesis, Carnegie Mellon University (2002)

    Google Scholar 

  10. Flauzino, M., Veríssimo, J., Terra, R., Cirilo, E., Durelli, V., Durelli, R.: Are you still smelling it? a comparative study between java and kotlin language. In: ACM International Conference Proceeding Series, pp. 23–32 (2018)

    Google Scholar 

  11. Fraser, S.D., et al.: The future of programming languages and programmers. In: ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, pp. 63-66. Association for Computing Machinery (2015)

    Google Scholar 

  12. García-Peñalvo, F., Mendes, A.: Exploring the computational thinking effects in pre-university education. Comput. Hum. Behav. 80, 407–411 (2018)

    Article  Google Scholar 

  13. Gurcan, F., Kose, C.: Analysis of software engineering industry needs and trends: implications for education. Int. J. Eng. Educ. 33(4), 1361–1368 (2017)

    Google Scholar 

  14. Gyori, A., Franklin, L., Dig, D., Lahoda, J.: Crossing the gap from imperative to functional programming through refactoring. In: Joint Meeting on Foundations of Software Engineering, pp. 543–553 (2013)

    Google Scholar 

  15. Hickey, R.: The clojure programming language. In: Symposium on Dynamic Languages. Association for Computing Machinery (2008)

    Google Scholar 

  16. Hu, Z., Hughes, J., Wang, M.: How functional programming mattered. Natl. Sci. Rev. 2(3), 349–370 (2015)

    Article  Google Scholar 

  17. Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989)

    Article  Google Scholar 

  18. Ierusalimschy, R.: First-class functions in an imperative world. J. Univ. Comput. Sci. 23(1), 112–126 (2017)

    MathSciNet  Google Scholar 

  19. Jackson, D., Kang, E.: Separation of concerns for dependable software design. In: FSE/SDP Workshop on Future of Software Engineering Research, pp. 173-176. Association for Computing Machinery (2010)

    Google Scholar 

  20. Knaus, C.Y.: Essential programming paradigm. In: ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications, pp. 823-26. Association for Computing Machinery (2008)

    Google Scholar 

  21. Köhl, M., Baum, K., Langer, M., Oster, D., Speith, T., Bohlender, D.: Explainability as a non-functional requirement. In: IEEE International Conference on Requirements Engineering, pp. 363–368. IEEE Computer Society (2019)

    Google Scholar 

  22. Matsakis, N., Klock, F.S., J.: The rust language. In: ACM Conference on High Integrity Language Technology, p. 103 (2014)

    Google Scholar 

  23. Meyerovich, L.A., Rabkin, A.S.: Empirical analysis of programming language adoption, vol. 48(10), pp. 1–8. ACM SIGPLAN Notices (2013)

    Google Scholar 

  24. Meyerson, J.: The go programming language. IEEE Softw. 31(5), 104–104 (2014)

    Article  Google Scholar 

  25. Minsky, Y., Weeks, S.: CAML trading-experiences with functional programming on wall street. J. Funct. Program. 18(4), 553 (2008)

    Article  MathSciNet  Google Scholar 

  26. Moran, A.: Functional programming in the real world. ACM SIGPLAN Not. 39(12), 17–20 (2004)

    Google Scholar 

  27. Odell, J.: Objects and agents compared. J. Object Technol. 1(1), 41–53 (2002)

    Article  Google Scholar 

  28. Odersky, M., et al.: An overview of the scala programming language. Tech. rep., École Polytechnique Fédérale de Lausanne (2004)

    Google Scholar 

  29. Perugini, S., Wright, D.J.: Concurrent programming with the actor model in elixir. J. Comput. Sci. Coll. 35(5), 111–114 (2019)

    Google Scholar 

  30. Piro, C., Letuchy, E.: Functional programming at facebook. In: Commercial Users of Functional Programming Conference, vol. 10 (2009)

    Google Scholar 

  31. Rebouças, M., Pinto, G., Ebert, F., Torres, W., Serebrenik, A., Castor, F.: An empirical study on the usage of the swift programming language. In: IEEE International Conference on Software Analysis, Evolution, and Reengineering, vol. 1, pp. 634–638 (2016)

    Google Scholar 

  32. Rogalski, J., Samurçay, R.: Acquisition of programming knowledge and skills. In: Hoc, J.M., Green, T., Samurçay, R., Gilmore, D. (eds.) Psychology of Programming, pp. 157 – 174. Academic Press (1990)

    Google Scholar 

  33. Shoham, Y.: Agent-oriented programming. Artifi. Intell. 60(1), 51–92 (1993)

    Article  MathSciNet  Google Scholar 

  34. Siddiqi, J.I.A., Osborn, R., Roast, C., Khazaei, B.: The pitfalls of changing programming paradigms. In: Empirical Studies of Programmers, pp. 219–232. Intellect Books (1996)

    Google Scholar 

  35. Stolin, Y., Hazzan, O.: Students’ understanding of computer science soft ideas: the case of programming paradigm. ACM SIGCSE Bull. 39(2), 65–69 (2007)

    Article  Google Scholar 

  36. Syme, D.: The early history of F#. ACM on Programming Languages 4 (2020)

    Google Scholar 

  37. Vick, P.: The Visual Basic. Addison-Wesley Professional, Net Programming Language (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Laura M. Castro .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Castro, L.M. (2020). It Was Never About the Language: Paradigm Impact on Software Design Decisions. In: Silhavy, R., Silhavy, P., Prokopova, Z. (eds) Software Engineering Perspectives in Intelligent Systems. CoMeSySo 2020. Advances in Intelligent Systems and Computing, vol 1294. Springer, Cham. https://doi.org/10.1007/978-3-030-63322-6_13

Download citation

Publish with us

Policies and ethics