{'fraction_non_alphanumeric': 0.02303030303030303, 'fraction_numerical': 0.0032323232323232323, 'mean_word_length': 5.205513784461153, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Viewpoint: stop that divorce!

As the 21st century fast approaches, computing professionals still do not have a clear understanding of the nature of their profession. This is unfortunate, especially since the discipline has accumulated enough science over the years to make it stand on its own. Several computing pioneers and professional organizations attempted to define the discipline of computing [1–4]. All of these attempts concluded that computer science is neither a science nor is it engineering in a traditional sense. Computer science defined a new relation between theory and experiments. In computing, unlike other disciplines, we cannot separate theory and engineering due to the nature of the discipline; such separation would be disastrous [3]. Recent advances in genetic algorithms and neural networks are but a few examples of what could be produced when we couple theory with practice. The science and engineering aspects in computer science are much closer than in many other disciplines and that is what makes computer science unique. Still computer science cannot be regarded as a classical practice of engineering; it is a new form of engineering. To quote Hartmanis [4]: “I am deeply convinced that we should not try to draw a sharp line between computer science and engineering and that any attempt to separate them is counterproductive.” Today, most of the confusion about computer science stems from the name of the discipline. The word “science” refers to a body of knowledge; we use it collectively to refer to the fields of engineering as “engineering sciences.” But the title “computer engineer” should not automatically associate with the construction of hardware. Computer design involves instruction-set architecture, organization, and detailed logic design and packaging [5]. Computing problems demand the invention of new engineering methodologies for the exploration of information and intellectual processes. In some cases, the same methodologies are used to develop both hardware and software (such as object-oriented techniques). Computing professionals are concerned with the design and analysis of hardware and software to perform new functions or to perform old functions in new ways [7]. It’s my view that the restriction of engineering to computer design and the exclusion of all other activities is harmful; I cannot imagine organizations or individuals investing in an operating system or a compiler that is not well engineered.